轉換流有兩種:InputStreamReader:將字節流轉換爲字符流 OutputStreamWriter:將字符流轉換爲字節流 何時使用轉換流?由如下分析: 流對象不少,首先要明確那個流對象。 經過三點來完成: 一、明確源和目的 源:輸入流。InputStream Reader 目的:輸出流。 OutputStream Writer 二、操做的數據是不是純文本。 是:字符流 否:字節流 三、當體系明確後,再明確要使用哪一個具體的對象。 經過設備來進行區分: 源設備:內存,硬盤,鍵盤 目的設備:內存,硬盤,控制檯 用一個例子簡單的說明: 將鍵盤錄入的數據保存到一個文件中,輸入「over」時表示錄入結束。 詳細分析: 源:從InputStream Reader中選擇; 由於是鍵盤錄入的是純文本,因此使用Reader. 設備:鍵盤,因此用System.in; 發現System.in是字節流的操做,與Reader(字符流)矛盾,這時就要用到轉換流 InputStreamReader 爲了提升操做效率,使用緩衝技術,選擇BufferedReader 目的:從 OutputStream Writer中選擇 由於是文本文件,因此選擇Writer, 設備:硬盤上,一個文件,選擇FileWriter 爲了提升操做效率,使用緩衝技術,選擇BufferedWriter import java.io.*; class ReadinFile { public static void main(String[] args)throws IOException //這裏問了方便閱讀。先不作異常處理 { BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in)); //將字節流轉換爲字符流 BufferedWriter bufw=new BufferedWriter(new FileWriter("readin.txt")); String line=null; while((line=bufr.readLine())!=null) { if("over".equals(line)) break; bufw.write(line); bufw.newLine(); } bufw.close(); bufr.close(); } }