黑马程序员技术交流社区

标题: 拷配一个文件,用字符,字节哪个效率高? [打印本页]

作者: —__    时间: 2012-5-7 17:38
标题: 拷配一个文件,用字符,字节哪个效率高?
大家都知道拷配一个txt文件,用字符效率高,那么其他的呢 拷配图片,视频文件呢如果用字符会不会丢失内容的?
作者: 谭景宾    时间: 2012-5-7 17:43
会,因为图片,视频文件都是以二进制数据进行存储的。
字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节, 操作字节和字节数组。所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!如果是 音频文件、图片、歌曲,就用字节流好点,如果是关系到中文(文本)的,用字符流好点
作者: 赵玮_Tom    时间: 2012-5-7 17:48
本帖最后由 赵玮_Tom 于 2012-5-7 17:51 编辑

需要说明的是:不仅仅是拷贝txt会用到字符流,只要是拷贝文本文件(如:word文件,配置文件等)都可以使用字符流。
图片、视频等文件为非文本文件,如果用字符流去拷贝,会导致图片无法显示或视频无法播放等非正常现象。这是因为
用字符流读取数据时,会匹配特定的编码表(如GBK,UTF-8等)。
任何文件在硬盘上都是以字节形式存储的,所以,字节流是通用的,而字符流只能拷贝文本文件
作者: 黑马张立国    时间: 2012-5-7 18:06
当涉及到文本时 用字符流高效而且FileOutputStream(没有使用缓冲区)
当涉及到非文本时,用字节流FileWriter(使用了缓冲区)

作者: 韩慧阳    时间: 2012-5-7 20:27
实际上字符流的效率要比字节流的效率要高,但是有个问题存在。就是当你不知道要拷贝的文件是什么格式的时候,如果使用字符流很容易产生内容的丢失,因为这个文件如果不是字符文件你使用字符流的话就会产生丢失。
在计算机中所有文件都是以字节来存储的,所以任何文件都可以使用字节流来传输,而且不会出现内容的丢失。
当你只要求拷贝文本文件时,里面的内容都是字符存储的,所以使用字符流的效率要比字节流的效率高,当然使用字节流也可以而且比较保险嘛!
作者: xiwangliujiao    时间: 2012-5-7 20:29
有可能丢失数据,或者增加数据,使数据不完整
作者: xiwangliujiao    时间: 2012-5-7 20:31
有可能丢失数据,或者增加数据,使数据不完整。
我认为,如果是文本,可以用字符流提高效率
如果是图片,视频最好用字节流,这样不容易出错




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2