将文件转换为字符串然后将其转换为文件

时间:2012-01-08 20:27:47

标签: java

我读了一个文件并将其转换为字符串(例如.jpg到字符串)

然后我将String写成文件,如(example.jpg)

但是Windows说它破碎的文件,并且无法查看

怎么了?

3 个答案:

答案 0 :(得分:2)

您不能使用String来可靠地保存二进制数据(例如图像),除非您首先将其编码为类似Base64的内容 - 它旨在表示String中的任何二进制值。否则,字符串仅设计为对字节值的子集进行操作。 (例如,我无法在没有编码的情况下在字符串中映射0字节值 - 至少假设像ASCII或UTF-8这样的东西。)

如果你比较你之前和之后的字节,你会发现它们不一样。相反,使用类似字节数组(byte[] myImage)来存储数据。

答案 1 :(得分:1)

将文件转换为字符串时,您将使用编码,但并非所有编码都允许所有字节组合作为有效字符。因此,当你再次写出它时你已经损坏了jpeg,无效的字符/字节组合通常要么完全被遗漏,要么被一些像问号这样的东西所取代,这就是一个不快乐的jpeg。

答案 2 :(得分:0)

我建议您查看Java Almanac中的示例,因为您无法使用String阅读图片。