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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 林翔 中级黑马   /  2012-5-24 00:21  /  2074 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天看完了字节流,发现字节流也可以操作文本文件,字节流的功能更全面。字符流的具体优势提现在哪里?

4 个回复

倒序浏览
字符流 FileReader FileWriter 主要用于处理文本格式的文件
字节流 FileInputStream FileOutputStream 主要用于处理二进制文件。

FileInputStream,FileOutputStream 流都是用来处理字节的,FileOutputStream 并不能直接处理文本文件,需要把它转化成字节才能写入文件,FileInputStream读取的也是字节,然后转化成需要的类型(比如:字符串)。

而FileReader FileWriter 可直接用来处理文本文件,简化了字符串的输入输出。相对于FileInputStream FileOutputStream 来说,FileReader FileWriter 省略了字符串和字节的转化过程,更加有利于程序的简洁性。
回复 使用道具 举报
InputStream  FileInputStream
InputStream与OutputStream所操作的都是字节操作  所有的数据都要通过byte数组操作。
在java提供了另外两套类,此类用于操作字符:Reader、Writer
字符流输出时如果不关闭则无法将内容写入到文件
根本原因时如果字符流不关闭则内存中的数据不会强制性的输出到文件,即,字符流操作中使用了
缓存,在关闭时会强制性的清空缓存,也可以使用flush()方法手工清空缓存。
字符流用到了缓存而字节流没有用到缓存。
InputStreamReader:是将输入的内容由字节变为字符
OutputStreamWriter:是将输出的内容由字符转化为字节
文件(字节)  内存  字符  
回复 使用道具 举报
字符流最终也是要转成字节流的,但是为什么还要出来个字符流,因为字符流只操作纯文本文件,字符流有其特有方法更加方便操作和高效执行。
回复 使用道具 举报
假如你要操作一个文本文件,操作里面的字符,而不是字节怎么办?
例如,你想查找 "你好"在一个文字出现的次数,这个时候你怎么操作,
字节流是万能的,但是字符流更容易操作字符。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马