A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

采用字符流复制图片,视频,音频等二进制数据的文件为什么会出错

5 个回复

倒序浏览
用字符流在读取文件的时候,首先会遇到编码的问题,字符流在复制这些图片的时候,有一些代码能找到编码就转换成编码,但找不到的就出错了,而字节流是按照二进制读取写入文件,不涉及到编码问题,因此在非文本操作的时候我们都会使用字节流。
回复 使用道具 举报
jlnu_wl 发表于 2015-6-28 15:32
用字符流在读取文件的时候,首先会遇到编码的问题,字符流在复制这些图片的时候,有一些代码能找到编码就转 ...

字符流一次读取两个字节,两个字节凑起来没有对应的编码,为什么字符默认会为空呢,
回复 使用道具 举报
蓝菊蚊香2 来自手机 中级黑马 2015-6-28 16:26:08
板凳
HM_HC 发表于 2015-6-28 15:39
字符流一次读取两个字节,两个字节凑起来没有对应的编码,为什么字符默认会为空呢, ...

这应该只是java的一种人为设定吧,没有对应字符的字符型二进制数全部默认为空。
回复 使用道具 举报
HM_HC 发表于 2015-6-28 15:39
字符流一次读取两个字节,两个字节凑起来没有对应的编码,为什么字符默认会为空呢, ...

当两个字节凑起来没有对应的编码,它就不认识了,应该会是 乱码把
回复 使用道具 举报
我用FileReader(java中读字符流的类)读一个非文本文件,然后用FileWriter(java中写字符流的类)写出去.在读文件时,用默认的编码一个字符一个字符的读取,对于有的字节,默认编码根本就不认识,于是打了一个问号(可以用txt打开看到许多问号),导致在读取的时候字符文件里就已经有了很多问号,信息就已经失去了很多.然后即使你在写入文件时采用同样的编码,那也没有用了,因为在读的时候就已经出问题了呀.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马