作用:爲了方便處理字節流與字符流之間的轉換,提供了兩個類:OutputStreamWriter,InputStreamReader
public class OutputStreamWriter
extends Writer
OutputStreamWriter是從字符流到字節流的橋接器:使用指定的charset將寫入其中的字符編碼爲字節。 它使用的字符集可以通過名稱指定,也可以明確指定,或者可以接受平臺的默認字符集。
每次調用write()方法都會導致在給定字符上調用編碼轉換器。 生成的字節在寫入底層輸出流之前在緩衝區中累積。 請注意,傳遞給write()方法的字符不會被緩衝。
爲了獲得最高效率,請考慮在BufferedWriter中包裝OutputStreamWriter,以避免頻繁的轉換器調用。 例如:
Writer out
= new BufferedWriter(new OutputStreamWriter(System.out));
public class InputStreamReader
extends ReaderInputStreamReader是從字節流到字符流的橋接器:它使用指定的charset讀取字節並將其解碼爲字符。 它使用的字符集可以通過名稱指定,也可以明確指定,或者可以接受平臺的默認字符集。
每次調用一個InputStreamReader的read()方法都可能導致從底層字節輸入流中讀取一個或多個字節。 爲了實現字節到字符的有效轉換,可以從基礎流中提取比滿足當前讀取操作所需的更多字節。
爲了獲得最高效率,請考慮在BufferedReader中包裝InputStreamReader。 例如:
BufferedReader in
= new BufferedReader(new InputStreamReader(System.in));
通過繼承關係可以發現,他們都是字符流的子類,同時可以接受nputStream和OutputStream的實例
private static void outpute() throws IOException {
//定義要進行輸出的磁盤完成路徑
File file = new File("D:" + File.separator + "test-new.txt");
if (!file.getParentFile().exists()){
file.getParentFile().mkdirs();
}
OutputStream fileOutputStream = new FileOutputStream(file);
Writer outputStreamWriter = new OutputStreamWriter(fileOutputStream);
outputStreamWriter.write("wwww.cctv.com");
outputStreamWriter.append("/nfffff");
outputStreamWriter.close();
}
這種操作在一些系統類庫操作中比較常見,有些時候系統只會給用戶字節流,但爲了方便處理需要字符流的轉換
FileInputStream和FileOutputStream繼承結構
FileReader和FileWriter繼承結構