Web Services 在Java中将字符串转换为图像时出错

uxh89sit  于 2022-11-15  发布在  Java
关注(0)|答案(1)|浏览(137)

我在将字符串转换为图像时遇到了一个问题。转换字符串图像后,它说文件格式无效。

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();

    }

}
ryevplcw

ryevplcw1#

String不是适合任意字节的容器。
当您尝试从bytes创建String时,就像您在这里所做的:

String rawString = new String(bytes);

则类String的构造函数将使用字符编码来解释这些字节,并尝试将它们转换为字符。
因为影像档的字节并不代表以某些字符编码方式编码的文字,所以这项作业将会失败。
不要将String用作任意二进制数据的容器。
如果需要以字符形式存储二进制数据(如图像文件的内容),请使用类似Base64 encoding的代码。

相关问题