在 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.