Java IO 轉換流的編碼解碼
阿新 • • 發佈:2019-02-08
package io.transstream.demo; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import javax.print.attribute.standard.OutputDeviceAssigned; import com.sun.org.apache.xml.internal.serialize.OutputFormat; public class TransStreamDemo3 { public static void main(String[] args) throws IOException { readText_2(); } private static void readText_2() throws IOException { InputStreamReader isr=new InputStreamReader(new FileInputStream("gbk.txt"),"UtF-8"); char []buf=new char[10]; int len=isr.read(buf); String str=new String(buf, 0, len); System.out.println(str); isr.close(); } private static void readText_1() throws IOException { FileReader fr=new FileReader("u8_1.txt"); char []buf=new char[10]; int len=fr.read(buf); String str=new String(buf, 0, len); System.out.println(str); fr.close(); } private static void writeText_3() throws IOException { OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("u8_1.txt"),"utf-8"); osw.write("你好"); osw.close(); } private static void writeText_2() throws IOException { OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("gbk_2.txt")); OutputStreamWriter osw2=new OutputStreamWriter(new FileOutputStream("gbk_2.txt"),"gbk"); /* * 這兩句程式碼的功能是等同的 * FileWriter:其實就是轉換流指定了本機預設碼錶的體現 而且這個轉換流的子類物件 可以方便操作文字檔案 * 簡單說:操作檔案的位元組流+本機預設的編碼表 * 這是按照預設碼錶來操作檔案的便捷類 *如果操作文字檔案需要明確 具體的編碼 FileWriter就不行了 必須用轉換流 * */ osw.write("你好"); osw.close(); } private static void writeText_1() throws IOException { FileWriter fw=new FileWriter("gbk.txt"); fw.write("你好"); fw.close(); } }