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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

大家都知道拷配一个txt文件,用字符效率高,那么其他的呢 拷配图片,视频文件呢如果用字符会不会丢失内容的?

评分

参与人数 1黑马币 +5 收起 理由
攻城狮 + 5 毕老师的视频都有详细的说到这个知识点哦.

查看全部评分

6 个回复

倒序浏览
会,因为图片,视频文件都是以二进制数据进行存储的。
字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节, 操作字节和字节数组。所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!如果是 音频文件、图片、歌曲,就用字节流好点,如果是关系到中文(文本)的,用字符流好点

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 赵玮_Tom 于 2012-5-7 17:51 编辑

需要说明的是:不仅仅是拷贝txt会用到字符流,只要是拷贝文本文件(如:word文件,配置文件等)都可以使用字符流。
图片、视频等文件为非文本文件,如果用字符流去拷贝,会导致图片无法显示或视频无法播放等非正常现象。这是因为
用字符流读取数据时,会匹配特定的编码表(如GBK,UTF-8等)。
任何文件在硬盘上都是以字节形式存储的,所以,字节流是通用的,而字符流只能拷贝文本文件

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
当涉及到文本时 用字符流高效而且FileOutputStream(没有使用缓冲区)
当涉及到非文本时,用字节流FileWriter(使用了缓冲区)
回复 使用道具 举报
实际上字符流的效率要比字节流的效率要高,但是有个问题存在。就是当你不知道要拷贝的文件是什么格式的时候,如果使用字符流很容易产生内容的丢失,因为这个文件如果不是字符文件你使用字符流的话就会产生丢失。
在计算机中所有文件都是以字节来存储的,所以任何文件都可以使用字节流来传输,而且不会出现内容的丢失。
当你只要求拷贝文本文件时,里面的内容都是字符存储的,所以使用字符流的效率要比字节流的效率高,当然使用字节流也可以而且比较保险嘛!
回复 使用道具 举报
有可能丢失数据,或者增加数据,使数据不完整
回复 使用道具 举报
有可能丢失数据,或者增加数据,使数据不完整。
我认为,如果是文本,可以用字符流提高效率
如果是图片,视频最好用字节流,这样不容易出错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马