天天看點

javaSE OutputStreamWriter, 轉換流, 字元流(根據指定編碼表)轉成位元組流

Demo.java:

package cn.xxx.demo;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

/*
 *  轉換流
 *    java.io.OutputStreamWriter 繼承Writer類  (參考Writer子類FileWriter的方法)
 *    就是一個字元輸出流,寫文本檔案  (可以指定編碼表)
 *    字元通向位元組的橋梁,将字元流轉成位元組流  (可以指定編碼表)
 *     
 *      OutputStreamWriter 有個子類,  FileWriter (用的是系統預設的編碼表)
 */
public class Demo {
	public static void main(String[] args)throws IOException {
		//writeGBK();
		writeUTF();
	}

	public static void writeUTF()throws IOException{
		
		FileOutputStream fos = new FileOutputStream("c:\\utf.txt"); // 建立位元組輸出流
		//建立轉換流對象,構造方法保裝位元組輸出流,并指定編碼表是UTF-8
		OutputStreamWriter osw = new OutputStreamWriter(fos,"UTF-8"); // 根據位元組輸出流構造轉換流。 指定UTF-8編碼表(不分大小寫)。 
		osw.write("你好");
		osw.flush();
		osw.close();
	}
	
	public static void writeGBK()throws IOException{
		//建立位元組輸出流,綁定資料檔案
		FileOutputStream fos = new FileOutputStream("c:\\gbk.txt"); // 建立位元組輸出流
		OutputStreamWriter osw = new OutputStreamWriter(fos); // 根據位元組輸出流構造轉換流。采用系統預設編碼表 GBK
		
		osw.write("你好");  //轉換流寫資料
		osw.flush();
		osw.close();
	}
}