通过学习前两篇的流基本类,对流的操作有了基本的认识。在一些操作中,当处理某些字节流时,如果可以使用字符流的一些方法,例如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
.....
在使用流操作时,数据量大时,可以使用缓冲区来进行提高效率的操作。