import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;

public class Main_GBK_Trans_UTF8 {

	public static void main(String[] args) {
		writeFileUseGBK();
		readFileUseGBK();

	}
	
	public static void writeFileUseGBK() {
		OutputStreamWriter ow=null;
		try {
			// 创建字节流
			// OutputStreamWriter 是字符流通向字节流的桥梁
			ow=new OutputStreamWriter(new FileOutputStream("E:/gbk.txt"), "GBK");
			// 使用GBK编码写入,同时也只能使用GBK格式读取出来
			ow.write("你好");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if(ow!=null) {
				try {
					ow.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		System.out.println("end");
	}
	
	public static void readFileUseGBK() {
		InputStreamReader in=null;
		try {
			// 创建字节流
			// InputStreamReader 是字符流通向字节流的桥梁
			// 使用GBK编码写入,同时也只能使用GBK格式读取出来
			in=new InputStreamReader(new FileInputStream("E:/gbk.txt"), "GBK");
			//in=new InputStreamReader(new FileInputStream("E:/gbk.txt"), "UTF-8");
			char[] chs=new char[1024];
			int len=-1;
			while((len=in.read(chs))!=-1) {
				System.out.println(new String(chs,0,len));
				// 输出
				// 你好
			}
			
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if(in!=null) {
				try {
					in.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		System.out.println("end");
	}
}