OutputStreamWriter類
1、概述
轉換流 java.io.OutputStreamWriter,是Writer的子類,是從字符流到字節流的橋梁。
它使用指定的字符集將字符編碼為字節。它的字符集可以由名稱指定,也可以接受平台的默認字符集。
2、繼承父類的共性成員方法
該類繼承 Writer 類,繼承了父類的共性成員方法
void write(int c) 寫入單個字符。 void write(char[] cbuf)寫入字符數組。 abstract void write(char[] cbuf, int off, int len)寫入字符數組的某一部分,off數組的開始索引,len寫的字符個數。 void write(String str)寫入字符串。 void write(String str, int off, int len) 寫入字符串的某一部分,off字符串的開始索引,len寫的字符個數。 void flush()刷新該流的緩沖。 void close() 關閉此流,但要先刷新它。
3、構造方法
OutputStreamWriter(OutputStream out)創建使用默認字符編碼的 OutputStreamWriter。
OutputStreamWriter(OutputStream out, String charsetName) 創建使用指定字符集的 OutputStreamWriter。
參數:
OutputStream out:字節輸出流,可以用來寫轉換之后的字節到文件中
String charsetName:指定的編碼表名稱,不區分大小寫,可以是utf-8/UTF-8,gbk/GBK,...不指定默認使用UTF-8
4、使用步驟【重要】
① 創建OutputStreamWriter對象,構造方法中傳遞字節輸出流和指定的編碼表名稱
② 使用OutputStreamWriter對象中的方法write,把字符轉換為字節存儲緩沖區中(編碼)
③ 使用OutputStreamWriter對象中的方法flush,把內存緩沖區中的字節刷新到文件中(使用字節流寫字節的過程)
④ 釋放資源
Demo:
1 public static void main(String[] args) throws IOException { 2 //1.創建OutputStreamWriter對象,構造方法中傳遞字節輸出流和指定的編碼表名稱 3 //OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("E:\\utf_8.txt"),"utf-8");
4 OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("E:\\utf_8.txt"));//不指定默認使用UTF-8 5 //2.使用OutputStreamWriter對象中的方法write,把字符轉換為字節存儲緩沖區中(編碼)
6 osw.write("你好"); 7 //3.使用OutputStreamWriter對象中的方法flush,把內存緩沖區中的字節刷新到文件中(使用字節流寫字節的過程)
8 osw.flush(); 9 //4.釋放資源
10 osw.close(); 11 }
