Java中的Base64编码
我正在使用Eclipse。 我有以下代码行:
wr.write(new sun.misc.BASE64Encoder().encode(buf));
Eclipse将此行标记为错误。 我导入了所需的库:
import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;
但是,再一次,他们都显示为错误。 我在这里找到了类似的帖子。
我使用Apache Commons作为解决方案,其中包括:
import org.apache.commons.*;
并导入从http://commons.apache.org/codec/下载的JAR文件
但问题依然存在。 Eclipse仍然显示前面提到的错误; 请指教。
你需要改变你的类的导入:
import org.apache.commons.codec.binary.Base64;
然后将您的类更改为使用Base64类。
以下是一些示例代码:
byte[] encodedBytes = Base64.encodeBase64("Test".getBytes());
System.out.println("encodedBytes " + new String(encodedBytes));
byte[] decodedBytes = Base64.decodeBase64(encodedBytes);
System.out.println("decodedBytes " + new String(decodedBytes));
然后阅读为什么你不应该使用sun。*包。
更新(16/12/2016)
您现在可以使用Java8的java.util.Base64
。 首先,像平常一样导入它:
import java.util.Base64;
然后使用Base64静态方法如下:
byte[] encodedBytes = Base64.getEncoder().encode("Test".getBytes());
System.out.println("encodedBytes " + new String(encodedBytes));
byte[] decodedBytes = Base64.getDecoder().decode(encodedBytes);
System.out.println("decodedBytes " + new String(decodedBytes));
有关更多信息,请参阅Javadocs for Base64:https://docs.oracle.com/javase/8/docs/api/java/util/Base64.html
使用Java 8永远不会迟到的类加入: java.util.Base64
您也可以使用base64编码进行转换。 要做到这一点,你可以使用javax.xml.bind.DatatypeConverter#printBase64Binary
方法
例如:
byte[] salt = new byte[] { 50, 111, 8, 53, 86, 35, -19, -47 };
System.out.println(DatatypeConverter.printBase64Binary(salt));
链接地址: http://www.djcxy.com/p/17679.html