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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天在看IO部分的视频,其中有说到复制MP3。视频上说图片等文件不能用字符流来复制,试了一下用字符流来复制MP3文件,复制出来的文件变小了,而且无法播放。出现这样的现象,我是否可以理解为在读数据的时候返回的是INT类型,但是写入的时候需要把INT类型的转为char类型,在转换过程中造成数据被丢失或者改变,所以最终复制的结果是MP3文件不能播放?

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

5 个回复

倒序浏览
可能是由于字符流读取后,要对应码表,转换时候出错的。字节流直接读取单位是1个字节,而字符流是2个字节的Unicode字符,所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的。ps:所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘。在读取文件(特别是文本文件)时,也是一个字节一个字节地读取以形成字节序列.
一般如果是音频文件就是用字节流,文本就是字符流

回复 使用道具 举报
数据错乱了吧
回复 使用道具 举报
你是逗我吗,你知道字符流其实也是字节流编译的吗,你一个图像的编码方式和一个字符的编码方式能一样吗。你没上过加算计理论的课吧
回复 使用道具 举报
楼上这位好喷啊,回答问题都回答的愤世嫉俗
回复 使用道具 举报
长度不匹配是转换时候出错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马