我需要用Java中的Base64编码对一些数据进行编码。我该怎么做?提供Base64编码器的类的名称是什么
我尝试使用sun.misc.BASE64Encoder类,但没有成功。我有以下一行Java 7代码:
write(新的sun.misc.BASE64Encoder().encode(buf));
我正在使用Eclipse。Eclipse将此行标记为错误。我导入了所需的库:
导入sun.misc.base64编码器;
导入sun.misc.base64解码器;
但同样,它们都显示为错误。我发现此处有类似帖子
我使用Apache Commons作为建议的解决方案,包括:
导入org.apache.commons.*;
并导入从以下位置下载的JAR文件:http://commons.apache.org/codec/
但问题依然存在。Eclipse仍然显示前面提到的错误。我该怎么办
您需要更改类的导入:
导入org.apache.commons.codec.binary.Base64;
然后将类更改为使用Base64类
下面是一些示例代码:
byte[]encodedBytes=Base64.encodeBase64(“Test.getBytes());
System.out.println(“encodedBytes”+新字符串(encodedBytes));
字节[]decodedBytes=Base64.decodedbase64(encodedBytes);
System.out.println(“decodedBytes”+新字符串(decodedBytes));
更新(2016-12-16)
现在,您可以将java.util.Base64与java一起使用;8.首先,像平常一样导入它:
导入java.util.Base64;
然后使用Base64静态方法,如下所示:
byte[]encodedBytes=Base64.getEncoder().encode(“Test.getBytes());
System.out.println(“encodedBytes”+新字符串(encodedBytes));
字节[]decodedBytes=Base64.getDecoder().decode(encodedBytes);
System.out.println(“decodedBytes”+新字符串(decodedBytes));
如果您直接想要对字符串进行编码并将结果作为编码字符串,您可以使用以下方法:
字符串encodeBytes=Base64.getEncoder().encodeToString((userName+”:“+password).getBytes());