我正在使用 Sun Micro Systems 的 BASE64Encoder 将图像转换为 Base64 字符串。问题是我在构建过程中收到了我不想要的警告
Java 代码..
public static String encodeToString(BufferedImage image, String type) {
String base64String = null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
ImageIO.write(image, type, bos);
byte[] imageBytes = bos.toByteArray();
BASE64Encoder encoder = new BASE64Encoder();
base64String = encoder.encode(imageBytes);
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
return base64String;
}
警告:
[javac] /Users/lucy/dev/workspace/flsv2/src/util/BufferImage.java:53: warning: BASE64Encoder is internal proprietary API and may be removed in a future release
[javac] BASE64Encoder encoder = new BASE64Encoder();
[javac] ^
[javac] /Users/lucy/dev/workspace/flsv2/src/util/BufferImage.java:53: warning: BASE64Encoder is internal proprietary API and may be removed in a future release
[javac] BASE64Encoder encoder = new BASE64Encoder();
[javac] ^
[javac] 2 warnings
有没有办法在上面的方法中使用Apache Commons而不产生警告?请帮助..
最佳答案
请不要使用内部 com.sun.*
包。如果您使用的是 v6 或更高版本,则可以使用 DatatypeConverter .那么您的代码将如下所示。
String base64String = DatatypeConverter.printBase64Binary(baos.toByteArray());
byte[] bytearray = DatatypeConverter.parseBase64Binary(base64String);
或者,
也可以使用:java.util.Base64
Java 1.8
String base64String = new String(Base64.getEncoder().encode(bytesToEncode));
byte[] decordedValue = Base64.getDecoder().decode(base64String);
或者,你可以在下面给出的apache commons
中创建一个方法调用过程
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.binary.StringUtils;
public String decode(String s) {
return StringUtils.newStringUtf8(Base64.decodeBase64(s));
}
public String encode(String s) {
return Base64.encodeBase64String(StringUtils.getBytesUtf8(s));
}
资源链接:
关于java - 使用 Apache Commons 将图像转换为 Base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37431110/