在 java 中将字符串转换为图像时出错
Getting error while converting string to image in java
我在将字符串转换为图像时遇到问题。转换字符串图像后提示文件格式无效。
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();
}
}
A String
不是任意字节的合适容器。
当您尝试从字节创建 String
时,就像您在此处所做的那样:
String rawString = new String(bytes);
然后 class String
的构造函数将使用字符编码解释这些字节并尝试将它们转换为字符。
因为图像文件的字节不代表用某种字符编码编码的文本,所以这将失败。
不要使用 String
作为任意二进制数据的容器。
如果您需要以字符的形式存储二进制数据,例如图像文件的内容,请使用 Base64 encoding.
我在将字符串转换为图像时遇到问题。转换字符串图像后提示文件格式无效。
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();
}
}
A String
不是任意字节的合适容器。
当您尝试从字节创建 String
时,就像您在此处所做的那样:
String rawString = new String(bytes);
然后 class String
的构造函数将使用字符编码解释这些字节并尝试将它们转换为字符。
因为图像文件的字节不代表用某种字符编码编码的文本,所以这将失败。
不要使用 String
作为任意二进制数据的容器。
如果您需要以字符的形式存储二进制数据,例如图像文件的内容,请使用 Base64 encoding.