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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yangfengxiao 中级黑马   /  2012-9-30 16:26  /  3812 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yangfengxiao 于 2012-9-30 16:27 编辑

当复制文本文件时,优先选择用字符流。

复制非文本文件时,一定要使用字节流。

问题是,可以用字符流+转换流来复制非文本文件吗~~

理解不深,请帮忙~~~

8 个回复

倒序浏览
可以的。你看到后面就会知道,字符流+转换流是很常见的。
回复 使用道具 举报
可以,但是我觉得没有必要,明明你直接用字节流去读写流媒体文件就好了,为什么要自己给自己找麻烦,中间要加一个字符流呢?但是既然存在转换流,肯定是有其道理的,但是要用到恰大好处,千万别画蛇添足了,这只是我的一己之见,希望对你有帮助。
回复 使用道具 举报
这个确切的说是你对转换流的理解不深
转换流的产生,
转换流的作用,
什么时候使用转换流,
弄清楚了,你也就知道可不可以了
回复 使用道具 举报
刘明月 发表于 2012-9-30 20:44
这个确切的说是你对转换流的理解不深
转换流的产生,
转换流的作用,

那你给我讲讲呗
回复 使用道具 举报
yangfengxiao 发表于 2012-9-30 20:54
那你给我讲讲呗

忘了,我先去看看
回复 使用道具 举报
我觉得还是字节流比较好用点

回复 使用道具 举报
复制非文本时,如MP3,
字符流是可以复制的,但是复制完的图片有可能打开看不了,
MP3不是以字符方式编码的,文件有自己的编码方式,但是你并不知道,所以只能以最小的,只能以字节流最小单位的读取方式读取。
转换流也是同样的道理,编码方式不知道。

至于其他的还有每个文件都有自己的消息头信息,如果读的还有其他信息,可能和你读取文件的消息透信息拼接在一起,这样就不知道文件头的起始位置,读的时候就会乱码。
所以不要用字符流拷贝媒体文件,字符流只用来处理文字数据。

这种理解,希望能给你帮助

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 崔朋朋 于 2012-10-1 16:43 编辑

转换流InputStreamReader、OutputStreamWriter都是把 字节流 转换成 字符流。也就是说在使用转换流之前,你必须要有字节流。
楼主是要用字符流+转换流来读写非文本文件,没有字节流,那就肯定不能用转换流了。除非你用字节流+转换流+字符流来复制非文本文件,这样的不仅麻烦,还会产生复制后的文件打不开的问题(编码方式不同造成的),还不如直接用字节流就行了。

总之,记住:
读写文本文件,用字节流+转换流或者是字符流,当然优先选用字符流;但当读写非文本文件时,如图片、音频、视频等,要选用字节流

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马