Java IO流(三) 流转换和流操作的基本规律

时间:2022-10-26 21:36:20

通过学习前两篇的流基本类,对流的操作有了基本的认识。在一些操作中,当处理某些字节流时,如果可以使用字符流的一些方法,例如readLine()方法等,可以更加方便快速的解决问题,所以就有了流之间的转换,通过查阅API发现,有InputStreamReader和OutputStreamWriter两个方法,即可以实现字节流和字符流之间的转换。下面通过一个实例演示一下:

//输入
InputStream in = System.in;
//字节流转换为字符流,转换流InputStreamReader
InputStreamReader isr = new InputStreamReader(in);
//创建字符流缓冲区
BufferedReader bufr = new BufferedReader(isr);
//输出
OutputStream os = System.out;
//字节流转换为字符流,转换流OutputStreamWriter
OutputStreamWriter osw = new OutputStreamWriter(os);
//创建字符流缓冲区
BufferedWriter bufw = new BufferedWriter(osw);
String line = null;
while((line =bufr.readLine()) != null){
if ("over".equals(line)) {
break;
}
bufw.write(line.toUpperCase());
bufw.newLine();
bufw.flush();
}
bufr.close();
上述的流转换也可以简写成以下方式:

BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));
流操作的一般规律:

1.明确源和目的

源:InputStream ;Reader 目的:OutputStream ;Writer

2.明确操作文件类型

文本文件:Reader ;Writer非文本文件:InputStream ;OutputStream

3.明确具体操作对象

文件:FileReader ;FileWriter   FileInputStream ;FileOutputStream

.....

在使用流操作时,数据量大时,可以使用缓冲区来进行提高效率的操作。