BufferedReader类
1、定义:
从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
缓冲字符输入流,可以指定缓冲区的大小。
缓冲中的数据实际上是保存在内存中,从内存中读取数据的速度比从硬盘读取数据的速度至少快10倍以上。
提供通用的缓冲方式文本读取,而且提供了很实用的readLine,读取一个文本行,从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。
2、构造方法:BufferedReader br = new BufferReader(Readerin);
InputStreamReader是Reader的子类。
FileReader没有提供读取文本行的功能。
3、方法:
int read(char[] cbuf,int off,int len);//将字符读入到数组的某一部分。返回读取的字符数。达到尾部 ,返回-1。
int read(char[] cbuf,int off,int len);//将字符读入到数组的某一部分。返回读取的字符数。达到尾部 ,返回-1。
void close();
//关闭该流。并释放与该流相关的所有资源。
InputStreamReader 类
1:定义
是字节流通向字符流的桥梁,封裝了InputStream在里头, 它以较高级的方式,一次读取一个一个字符,以文本格式输入 / 输出,可以指定编码格式。
它将字节流转换为字符流.
2、构造方法
InputStreamReader( InputStream In )
InputStream类
1、InputStream能从來源处读取一個一個byte。
2、构造方法:
(1) InputStream in = new FileInputStream(String fileName);//读取文件中的数据。可以看出 FileInputStream 为InputStream的子类。
(2) 参数 in对象通过 InputStream in = System.in;获得。//读取键盘上的数据。
总结
:
1、InputStreamReader封裝了InputStream在里头,它以较高级的方式,一次读取一个一个字符,BufferedReader则是比InputStreamReader更高级。
2、
InputStream:得到的是
字节输入流
,InputStream.read("filename")之后,得到字节流。
InputStreamReader:从
字节到字符的桥梁
。InputStreamReader(InputStream.read("filename"));
Reader:
读取的是字符流
,
reader.read(InputStreamReader(InputStream in));便可从字节变为字符,打印显示了。