java基礎專欄—IO轉換(3)

流對象的轉換

FileWriter,FileReader,都是默認使用GBK編碼表(安裝了中文的系統的都是默認GBK)。要對編碼表進行操做,解決網頁的亂碼問題就須要流轉換java

OutputStreamWriter

字符流通向字節流的橋樑,這個流自己能夠操做編碼表函數

|--Writer
	|--OutputStreamWriter
		|--FileWriter
	自身是一個字符輸出流,用來寫文本文件
public OutputStreamWriter(OutputStream out)    

public OutputStreamWriter(OutputStream out, String CharsetName)

轉換過程編碼

//建立流對象綁定文件對象
FileOutpurStream fos = new FileOutputStream("xxxxx");
//建立轉換流,經過構造函數轉換流,指定編碼格式
OutputStreamWriter osw = new OutputStreamWriter(fos,"GBK");
//經過轉換流對象來寫入文件
osw.write("xxxx");
//只用關閉轉換流就可關閉輸出流了
osw.close();

InputStreamReader

字節流通向字符流的橋樑,這個流自己能夠操做編碼表code

|--Reader
	|--InputStreamReader
		|--FileReader
	自身是一個字符輸入流,用來讀文本文件
public InputStreamReader(InputStream in)    

public InputStreamReader(InputStream in, String CharsetName)

轉換過程對象

FileInputStream fis = new FileInputStream();

InputStreamReader isr = new InputStreamReader(fis,"gbk");

char[] ch = new char[1024];

int len = 0;

while((len = isr.read()) != -1){
    System.out.println(new String(ch, 0, len));
}

isr.close()
相關文章
相關標籤/搜索