BufferdeReade 是缓冲流,楼下都说的很清楚了。
InputStreamReader它是一个字符流,也被称为是转换流。
观察如下代码,从键盘中读取数据:[code=java]package org.cxy.demo;
import java.io.*;
public class Demo {
public static void main(String[] args) throws IOException{
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
System.out.println(buf.readLine());
}
}[/code]System.in是InputStream类型的对象,它是字节流,而BufferedReader 是字符流,BufferedReader 的构造方法中只能接受字符流。因此需要使用转换流InputStreamReader,将字节流System.in转换成字符流。
当咱们执行“buf.readLine()” 语句时,其实就是命令 BufferedReader读取一行字符。
而BufferedReader会转过来命令InputStreamReader,接着InputStreamReader又转过来,用字节流System.in能接受的方式,继续命令它读数据。然后InputStreamReader将System.in读来的数据,转换成字符,再交给BufferedReader 。最后输出。
换句话说,使用转换流,就是为了使咱们可以,用操作字符流的方式去操作字节流。
若您不需要这么来操作字节流,那么就没必要使用转换流了。 |