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