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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 够了没有 中级黑马   /  2013-11-21 10:51  /  1430 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 够了没有 于 2013-11-21 16:18 编辑

我用以下程序复制一个mp3文件,但复制后得到的文件不能正常播放。
------------------------------------------------------------------------------
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

class IO流 {
        public static void main(String[] args) throws IOException{
                FileReader fis = new FileReader("0.mp3");
                FileWriter fos = new FileWriter("1.mp3");
                char[] buf = new char[1024];
                int len;
                while((len=fis.read(buf))!=-1){
                        fos.write(buf,0,len);
                }
                fis.close();
                fos.close();
        }
}
------------------------------------------------------------------------------
问题:字符流内部不也是用的字节流吗?如果是这样的话,那为什么我不能用
字符流操作字节组成的mp3文件?

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

3 个回复

倒序浏览
首先,字符流只能操作字符的文件,第二,你的MP3文件有多大,你定义的数组空间很小,你是把所有的文件都写进去之后才close,而不是写一点就刷新一点,所以你定义的空间不够大,第三,你定义的是字符数组空间。

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
毕老师说过。用字符流在操作非文本数据时,它会自动去查表。如果表里面没有这个数据,这个数据会走非知字符区,会改变。
回复 使用道具 举报
是会改变,但是返回来的时候,还是字符形式反回来的,而不是字节。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马