黑马程序员技术交流社区

标题: FileReader/FileWriter [打印本页]

作者: 山治0712    时间: 2014-3-2 20:06
标题: FileReader/FileWriter
你们觉得能用FileReader去读一个图片文件吗?用FileWriter将数据写出去会怎样呢?
作者: 平凡成就非凡    时间: 2014-3-2 20:47
图片是字节码文件,你只能用字节流进行输入输出。
作者: Amorvos    时间: 2014-3-2 22:30
你硬要使用 FileReader/FileWriter对图片文件进行读写操作不是不可以,只是会出错罢了。
FileReader/FileWriter是字符读写流,存在译码编码处理,当采用 FileReader/FileWriter这类字符流处理图片文件时,文件会受损,你可以试下,文件会变大,而且打不开。
PS:
只有文本文件采用字符流进行直接处理,所有的文件都可以用字节流。
作者: 山治0712    时间: 2014-3-2 22:35
Amorvos 发表于 2014-3-2 22:30
你硬要使用 FileReader/FileWriter对图片文件进行读写操作不是不可以,只是会出错罢了。
FileReader/FileW ...

我试过,呵呵,文件变小点的,图片也打不开,只是原因不是巨清楚,不就是读取数据写入数据吗,两个字节一起读一起写应该没问题的啊,编码不都是默认的吗?
作者: 山治0712    时间: 2014-3-2 22:36
平凡成就非凡 发表于 2014-3-2 20:47
图片是字节码文件,你只能用字节流进行输入输出。

字符数据不就是两个字节数据组成的吗
作者: 位俊鹏    时间: 2014-3-2 22:54
不能读取图片文件,FileReader 是字符流输入流,而图片文件是字节码文件,一个字符是两个字节, 既然读到的就已经是乱码了那写出后就会出现乱码情况.
像音频,视频,图片类的,也就是用记事本打开后看不懂的,出现乱码的就要用字节流来操作.
作者: 还是回去火星吧    时间: 2014-3-3 00:45
毕老师说过,可以进行期操作,但是可能会有文件打不开的情况。我也试过,果然如此。
作者: 榨菜    时间: 2014-3-3 02:05
我觉得这个要先设置下码表了 iso8859-1  。 因为这个是8位编码的,所以字符和字节是相同的。 所以用Reader读的时候相当于读字节
作者: 目标    时间: 2014-3-3 09:42
可以通过转换流对其进行操作
作者: Softlmis    时间: 2014-3-3 17:16
字节流与字符流的区别就在编码上。编码不同打开也是乱的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2