JavaSE總結-IO流之間的轉換流

轉換流
所謂轉換流,就是在字節流和字符流之間的一個橋樑,有了轉換流,如果沒有指定字符編碼,默認編碼爲GBK.
爲了提高效率,可以在中間建立一個緩衝數組,包裝到BufferedWriter/BufferedReader中,避免頻繁調用切換器
例如:

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

BufferedWriter out = new BufferedWriter(new OutputStreaWriter(System.in))

API文檔中抓轉換流中的構造方法:

InputStreamReader中的構造方法*
InputStreamReader(InputStream in)
//創建一個使用默認字符集的InputStreamReader

InputStreamReader(InputStream in, charset cs)
//創建使用給定字符集的InputStreamReader

InputStreamReader(InputStream in,charsetDecoder dec)
//創建使用給定字符集解碼器的InputStreamReader

InputStreamReader(InputStream in, String charsetName)
//創建使用指定字符集的InputStreamReader

方法摘要
void close()
//關閉流並釋放

String getEncoding()
//返回流的編碼名稱

int read()
//讀取單個字符

boolean ready()
//判斷此流是否已經準備好用去讀取

OutputStreamWriter:
語法格式:
Writer out = new BufferedWriter(new OutputStreamWriter(System.in))
構造方法摘要:

OutputStreamWriter(OutputStream out)
//創建默認編碼的OutputStreamWriter
OutputStreamWriter(OutputStream ,Charset cs)
//創建使用給定字符集OutputStreamWriter

OutputStreamWriter(OutputStream out, CharsetEncoder enc)
//創建使用給定字符集編碼的OutputStreamWrite
OutputStreamWriter(OutputStream out, String charsetName)
//創建使用指定字符集的 OutputStreamWriter。

方法摘要:
void close()
//關閉資源
void flush()
//刷新緩存
String getEncoding()
//返回流中的字符編碼
void write(char[] cbuf, int off, int len)
//寫入字符數組的某一部分
void write(int c)
// 寫入單個字符
void write(String str, int off, int len)
// 寫入字符串的某一部分。

下面舉個例子來說明轉換流的用法:

package Practice;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class ConversionIO {
/**
 * 轉換流
 * @param args
 * 所謂轉換流,就是將字節流轉換爲字符流,作爲字節流和字符流的轉換的橋樑
 */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        //獲取便準輸入流
        InputStream  in = System.in;

        //將字節流轉換爲字符流
        InputStreamReader inputStreamReader = new InputStreamReader(in);

        //緩衝字符流
        BufferedReader bufferedReader = new  BufferedReader(inputStreamReader);

        //讀取行數內容
        String string = null;
        while ((string = bufferedReader.readLine()) != null) {
            if (條件語句) {
                //執行語句
                System.out.println("程序測試完畢!");
            }
            System.out.println("程序測試完畢!");
        }


    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章