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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 钟伟杰 中级黑马   /  2013-5-7 01:12  /  1917 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 钟伟杰 于 2013-5-7 11:09 编辑

BufferedReader中有readLine(),对于读取数据是很方便的,

能像下面一样关联MP3文件,进行文件的复制吗?
BufferedReader bufr = new BufferedReader(new InputStreamReader(new FileInputStream(1.mp3)));

BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(1_copy.mp3)));

5 个回复

倒序浏览
  1. 显然不行!!!
  2. public String readLine()
  3. { }
  4. readLine的返回值时String类型的,.mp3读取的是字节流,byte。。。。。
复制代码
回复 使用道具 举报
你是想用字符流的readline来复制mp3么。不可以的,即使复制了,也是不完整的。复制媒体文件就用字节流是最好的,包上Buffered缓冲区提高效率即可。
回复 使用道具 举报
(⊙o⊙)…..............能说LZ很大胆,呵呵,可能LZ还没看到老师那个知识点后面的视频。
我记得不能用字符流操作非字符数据的原因是: 字符流会将每次读取到的N个字节在编码表中寻找一个对应的字符(如果没有找到,它就会找个字节类似的字符,这就是不能的原因。)
所以在读取转换成字符流时文件的字节代码有些可能发生改变,而在输出时又是直接就能转成字节流的(没有那个寻找匹配的过程),所以复制的文件就可能在某个地方缺少错误。
(极品少数时候,LZ的复制可能会成功,但是多数时候即非字符文件越大,出现错误的几率就越多)
回复 使用道具 举报
zms2100 发表于 2013-5-7 07:51
(⊙o⊙)…..............能说LZ很大胆,呵呵,可能LZ还没看到老师那个知识点后面的视频。
我记得不能用字符 ...

非常感谢,解决了我的疑问。
回复 使用道具 举报
钟伟杰 发表于 2013-5-7 11:09
非常感谢,解决了我的疑问。

客气..........O(∩_∩)O~,好好加油。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马