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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

什么时候用字符流 (reader)什么时候用字节流(inputstream)

6 个回复

倒序浏览
字符流 (reader),主要用来读取文本文件数据,例如:xxx.txt, xxx.java等
字节流(inputstream),这个更通用,可以读取除文本数据之外的文件,例如,视频呀,图片呀
回复 使用道具 举报
操作的是纯文本的文件时用字符流,比如说读取文本格式的文档。操作的不是纯文本的文件时用字节流,比如说复制图片
回复 使用道具 举报
本帖最后由 叶绍亮 于 2012-3-19 23:41 编辑

字节流 InputStream OutputStream   
字符流 Reader  Writer   
他们都是抽象类
如果数据流中最小的数据单元是字节,那么称这种流为字节流;如果数据流中最小的数据单元是字符,那么称这种流为字符流。
字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节, 操作字节和字节数组。如果是 音频文件、图片、歌曲,就用字节流好点,如果是关系到中文(文本)的,用字符流好点.
字符流只能处理字符或者字符串
字节流可用于任何类型的对象,包括二进制对象,
字节流提供了处理任何类型的IO操作的功能,但它不能直接处理Unicode字符,而字符流就可以。
回复 使用道具 举报
本帖最后由 郑涛 于 2012-3-19 23:48 编辑

字节流:可以用于读写二进制文件及任何类型文件 byte
字符流:可用于读写文本文件
其实字符流相当于字节流+编码表(ASCII GBK Unicode UTF-8)
Reader 和InputStream都是输入流,输入流就是数据从数据源(文件)到程序(内存)的路径,可以使用它们。
回复 使用道具 举报
如果要读取和传输的数据是字节流就用字节流, 如图片, MP3和视频等都是字节型数据
如果要读取和传输的数据是字符型的就用字符流, 如文本, 当然也能可以用字节流, 但是比较麻烦, 还要做转换动作, 不建议使用
如果读取和传输的数据类型不统一, 如要读取的是字节, 而想传输成字符, 可以用转换流,
InputStreamReader'是用在读取数据的时候, 它能将字节流转换成字符流
OutputStreamWriter是用在写出数据的时候, 它能将字符流转换成字节流
回复 使用道具 举报
      在一些文本文件中,我们应该使用字符流的,这样的话,效率会比字节流高的。这是视频中老师讲过的。在者对于字节流我们在处理一些二进制的文件,比如一些视频文件图片呀什么的,这样我们就必须使用字节流了。
      在老师讲解的这些视频中,对于一些.java以及.txt文件进行操作的,感觉还是字符流比较好用,在FileReader外面再套一层比如BufferReader,这样使用起来就不用在管里面的一些小细节了,是不是很方便呀。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马