package com.chunzhi.Test03ReverseStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; /* java.io.OutputStreamWriter extends Writer OutputStreamWriter:是字符流通向字節流的橋梁。可使用指定的charset將要寫入流中的字符編碼成字節 繼承父類的共性成員方法: void write(int c):寫入單個字符 void write(char[] cbuf):寫入字符數組 abstract void write(char[] cbuf, int off, int len):寫入字符數組的某一部分,off:數組的開始索引,len:寫的字符個數 void writ(String str):寫入字符串 void writ(String str, int off, int len):寫入字符數組的某一部分,off:數組的開始索引,len:寫的字符個數 void flush():刷新該流的緩沖 void close():關閉此流,但要先刷新它 構造方法: OutputStreamWriter(OutputStream out):創建使用默認字符編碼的OutputStreamWriter OutputStreamWriter(OutputStream out, String charsetName):創建使用指定字符集OutputStreamWriter 參數: OutputStreamWriter:字節輸出流,可以用來寫轉換之后的字節到文件中 String charsetName:指定的編碼表名稱且不區分大小寫,不指定則使用默認(IDEA默認UTF-8編碼) 使用步驟: 1.創建OutputStreamWriter對象,構造方法中傳遞字節輸出流和指定的編碼表名稱 2.使用OutputStreamWriter對象中的方法write,把字符轉換為字節儲存緩沖區中(編碼) 3.使用OutputStreamWriter對象中的方法flush,把內存緩沖區中的字節刷新到文件中(使用字節流寫字節的過程) 4.釋放資源 */ public class Test02OutputStreamWriter { public static void main(String[] args) throws IOException { write_utf_8(); write_gbk(); } private static void write_gbk() throws IOException { // 1.創建OutputStreamWriter對象,構造方法中傳遞字節輸出流和指定的編碼表名稱 OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("Day10_IO\\gbk.txt"), "gbk"); // 2.使用OutputStreamWriter對象中的方法write,把字符轉換為字節儲存緩沖區中(編碼) osw.write("你好Java世界"); // 3.使用OutputStreamWriter對象中的方法flush,把內存緩沖區中的字節刷新到文件中(使用字節流寫字節的過程) osw.flush(); } private static void write_utf_8() throws IOException { // 1.創建OutputStreamWriter對象,構造方法中傳遞字節輸出流和指定的編碼表名稱 OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("Day10_IO\\utf-8.txt"), "utf-8"); // 2.使用OutputStreamWriter對象中的方法write,把字符轉換為字節儲存緩沖區中(編碼) osw.write("你好Java世界"); // 3.使用OutputStreamWriter對象中的方法flush,把內存緩沖區中的字節刷新到文件中(使用字節流寫字節的過程) osw.flush(); } }