我刚才想的样本代码的形式净它显示一个警告如下如何避免Base 64的警告?
SimpleConvertImage.java:7:警告:com.sun.org.apache.xerces.internal.impl.dv.util.Base64是内部专有API,可能在未来版本中删除 import com.sun.org.apache.xerces.internal.impl.dv.util.Base64; ^
SimpleConvertImage.java:16:警告:com.sun.org.apache.xerces.internal.impl.dv.util。 Base64是内部专有API,可能在未来版本中删除 String base64String = Base64.encode(baos.toByteArray()); ^
SimpleConvertImage.java:19:警告:com.sun.org.apache.xerces.internal.impl.dv.util .Base64是内部专有API,并且可以在将来的版本 字节[移除] bytearray = Base64.decode(base64String); ^
的代码是低于一个
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
public class SimpleConvertImage {
public static void main(String[] args) throws IOException{
String dirName="/root/Desktop";
ByteArrayOutputStream baos=new ByteArrayOutputStream(1000);
BufferedImage img=ImageIO.read(new File(dirName,"Screenshot.png"));
ImageIO.write(img, "png", baos);
baos.flush();
String base64String=Base64.encode(baos.toByteArray());
baos.close();
byte[] bytearray =Base64.decode(base64String);
BufferedImage imag=ImageIO.read(new ByteArrayInputStream(bytearray));
ImageIO.write(imag, "png", new File(dirName,"snap3.png"));
}
}
警告说,这一切:你使用Xerces的是告诉类你不要使用,因为它是内部的和专有的,可能会被删除,也可能味道不好。幸运的是,还有其他的base64编码/解码选项可用:http://stackoverflow.com/questions/469695/decode-base64-data-in-java – Sneftel
而在Java 8中,它终于有官方支持http:// stackoverflow。 com/a/15646871/637889 – andyb