黑马程序员技术交流社区

标题: filereader和 fileinputstreamreader 有什么区别? [打印本页]

作者: 周骑骏    时间: 2013-7-23 07:31
标题: filereader和 fileinputstreamreader 有什么区别?
本帖最后由 杨兴庭 于 2013-7-23 16:48 编辑

filereader和fileinputstreamreader 有联系和区别呢?我不太懂
作者: 狼王    时间: 2013-7-23 07:45
FileReader是字符读取流,只能操作文本
FileInputStream 是字节输入流,是不仅可以操作文本,还可操作如图片、视频、音频等
InputStreamReader 是读取转换流,它是字节流通向字符流的桥梁。
至于FileInputStreamReader我好像没见过
同学,要注意大小写哦
作者: 月亮人生    时间: 2013-7-23 07:52
FileReader 用于读取字符流。

FileReader 一般用法:
FileReader fr = new FileReader("ming.txt");
   char[] buffer = new char[1024];
   int ch = 0;
   while((ch = fr.read())!=-1 )
   {
    System.out.print((char)ch);
   }


InputStreamReader 是字节流通向字符流的桥梁,也就是转换流,将字节流转成字符流。

InputStreamReader 的一般用法:
InputStreamReader isr = new InputStreamReader(new FileInputStream("ming.txt"));
   while((ch = isr.read())!=-1)
   {
    System.out.print((char)ch);
   }


FileReader与它的父类 InputStreamReader 的主要不同在于构造函数,主要区别也就在于构造函数!从 InputStreamReader 的构造函数中看到,参数为 InputStream 和编码方式,可以看出

,当要指定编码方式时,必须使用 InputStreamReader 类;而 FileReader 构造函数的参数与 FileInputStream 同,为 File 对象或表示 path 的 String

作者: jialihong    时间: 2013-7-23 07:58
FileReader类用于字符文件的输入;
好像没有出现过FileInputStreamReader
作者: 米中之玉    时间: 2013-7-23 09:39
好像没有fileinputstreamrender这个类吧。文件操作的有FileReader和FileInputStream这两个类。他们都能直接操作文件,但FileReader读取出来的数据是字符形式,而FileInputStream读取出来的数据是二进制形式。
作者: 深圳在漂移    时间: 2013-7-23 09:43
前者是入口,后者要使用这个入口。
即,后者不能直接去读文件,前者可以直接读文件。
前者是节点流,后者是过滤流。
过滤流必须以已经存在的流为端点构造输入/输出流。所以后者以前者为端点构造输入流。




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