【问题标题】:Encoding and decoding strings with the use of java.util.Base64使用 java.util.Base64 编码和解码字符串
【发布时间】:2015-05-25 16:32:16
【问题描述】:

我试图找到一种使用 java.util.Base64.Encoder 和 Decoder 类对字符串进行编码和解码的方法。不幸的是,不可能静态调用编码和解码方法,所以我创建了对编码器和解码器类的引用。但是为了为这些引用中的每一个创建一个实例对象,我需要将一些参数转换为构造函数。老实说,我什至不知道我可以向他们提出什么论据。 API 文档保持沉默https://docs.oracle.com/javase/8/docs/api/java/util/Base64.Encoder.html。下面是我几乎可以正常工作的示例,由于缺少 Encoder 实例而引发 NullPointerException。

import java.util.Base64.Encoder;
import java.util.Base64.Decoder;

public class NumberCipher {

    private static Encoder encoder;
    private static Decoder decoder;

    public static void main(String[] args) {
        String test = "There is no clue about Batman and Robin tryst at 43 Joker Street Motel.";
        String test_enc = encode(test);
        String test_dec = decode(test_enc);

        System.out.println(test);
        System.out.println(test_enc);
        System.out.println(test_dec);
    }

    public static String decode(String toDecode) {
        byte[] bytesDecoded = decoder.decode(toDecode.getBytes());
        String decoded = new String(bytesDecoded);
        return decoded;
    }

    public static String encode(String toEncode) {
        byte[] bytesEncoded = encoder.encode(toEncode.getBytes());
        String encoded = new String(bytesEncoded);
        return encoded;
    }
}

【问题讨论】:

标签: java encoding base64 java-8 decoding


【解决方案1】:

简单:

Base64.Encoder encoder = Base64.getEncoder();
Base64.Decoder decoder = Base64.getDecoder();

【讨论】:

    猜你喜欢
    • 2016-07-18
    • 2019-03-06
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    相关资源
    最近更新 更多