黑马程序员技术交流社区

标题: 采用字符流复制图片,视频,音频等二进制数据的文件为什么会出错 [打印本页]

作者: HM_HC    时间: 2015-6-28 15:22
标题: 采用字符流复制图片,视频,音频等二进制数据的文件为什么会出错
采用字符流复制图片,视频,音频等二进制数据的文件为什么会出错
作者: jlnu_wl    时间: 2015-6-28 15:32
用字符流在读取文件的时候,首先会遇到编码的问题,字符流在复制这些图片的时候,有一些代码能找到编码就转换成编码,但找不到的就出错了,而字节流是按照二进制读取写入文件,不涉及到编码问题,因此在非文本操作的时候我们都会使用字节流。
作者: HM_HC    时间: 2015-6-28 15:39
jlnu_wl 发表于 2015-6-28 15:32
用字符流在读取文件的时候,首先会遇到编码的问题,字符流在复制这些图片的时候,有一些代码能找到编码就转 ...

字符流一次读取两个字节,两个字节凑起来没有对应的编码,为什么字符默认会为空呢,
作者: 蓝菊蚊香2    时间: 2015-6-28 16:26
HM_HC 发表于 2015-6-28 15:39
字符流一次读取两个字节,两个字节凑起来没有对应的编码,为什么字符默认会为空呢, ...

这应该只是java的一种人为设定吧,没有对应字符的字符型二进制数全部默认为空。
作者: jlnu_wl    时间: 2015-6-28 16:51
HM_HC 发表于 2015-6-28 15:39
字符流一次读取两个字节,两个字节凑起来没有对应的编码,为什么字符默认会为空呢, ...

当两个字节凑起来没有对应的编码,它就不认识了,应该会是 乱码把
作者: 雨鎧诗_Uy4TT    时间: 2015-6-28 21:26
我用FileReader(java中读字符流的类)读一个非文本文件,然后用FileWriter(java中写字符流的类)写出去.在读文件时,用默认的编码一个字符一个字符的读取,对于有的字节,默认编码根本就不认识,于是打了一个问号(可以用txt打开看到许多问号),导致在读取的时候字符文件里就已经有了很多问号,信息就已经失去了很多.然后即使你在写入文件时采用同样的编码,那也没有用了,因为在读的时候就已经出问题了呀.




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