开发者社区> 问答> 正文

java byte[]写入文件,总会被写成字符串:报错

首先,我有一个图片的byte[]数据。之后创建了个文件,因为不知道图片类型,也就创建了个无类型的文件。把byte[]写入到file中,再打开看file,内容却不是图片了,而是byte[]被转换成了字符串的表达形式,然后把这个字符串写入进了file中。造成的再次打开看的时候,就成了文本文件,内容就像 0xF010101a......什么的。

我写byte[]到file的时候,用了:

org.springframework.util.FileCopyUtils.copy(bytes,file);

 org.apache.commons.io.FileUtils.writeByteArrayToFile(file, bytes);

这2种方式,现在问题是:我在本地,用这2种方式从数据库中读取到byte[],然后来写入file都是正常的图片。

把class发布到服务器去,写出来,就出现我开头提到的错误。这是什么原因造成的呢?

展开
收起
kun坤 2020-06-06 23:06:20 975 0
1 条回答
写回答
取消 提交回答
  • 估计是这2个做的事有些过了点。还帮你把byte 变为16进制了。不过和发布成class 有撒关系######

    引用来自“wzfz”的评论

    估计是这2个做的事有些过了点。还帮你把byte 变为16进制了。不过和发布成class 有撒关系
    现在情况是:我不用它们2个了,用原始API:
    FileOutputStream os = new FileOutputStream(file);                
                    os.write(bytes);
                    os.close();
    这样写进去,也还是16进制的,妈蛋。######先别怪人家api,肯定是你的写法有问题######目测保存到数据库里的时候就有问题了。。######我想知道就写一个字符串到文本文件最终结果是什么######用 ByteArrayOutputStream
    2020-06-08 11:18:28
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载