我在将字符串转换为图像时遇到了一个问题。转换字符串图像后,它说文件格式无效。
public class FileExample {
public static void main(String[] args) throws IOException {
File file = new File("G:\\designpatterns\\image002.jpg");
FileInputStream fis = new FileInputStream("G:\\designpatterns\\image002.jpg");
byte bytes[]= new byte[(int)file.length()];
fis.read(bytes);
String rawString = new String(bytes);
FileOutputStream fos = new
FileOutputStream("G:\\designpatterns\\image001.jpg");
fos.write(rawString.getBytes());
fis.close();
fos.close();
}
}
1条答案
按热度按时间ryevplcw1#
String
不是适合任意字节的容器。当您尝试从bytes创建
String
时,就像您在这里所做的:则类
String
的构造函数将使用字符编码来解释这些字节,并尝试将它们转换为字符。因为影像档的字节并不代表以某些字符编码方式编码的文字,所以这项作业将会失败。
不要将
String
用作任意二进制数据的容器。如果需要以字符形式存储二进制数据(如图像文件的内容),请使用类似Base64 encoding的代码。