Java常用API 之 java.io.InputStreamReader(附解析和示例)_10


public class InputStreamReader
extends Reader
    InputStreamReader 是字節流通向字符流的橋樑:它使用指定的 charset 讀取字節並將其解碼爲字符。它使用的字符集可以由名稱指定或顯式給定,或者可以接受平臺默認的字符集。每次調用 InputStreamReader 中的一個 read() 方法都會導致從底層輸入流讀取一個或多個字節。要啓用從字節到字符的有效轉換,可以提前從底層流讀取更多的字節,使其超過滿足當前讀取操作所需的字節。

    爲了達到最高效率,可要考慮在 BufferedReader 內包裝 InputStreamReader。例如:

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

構造函數
InputStreamReader(InputStream in) 創建一個使用默認字符集的 InputStreamReader。
InputStreamReader(InputStream in, Charset cs) 創建使用給定字符集的 InputStreamReader。
InputStreamReader(InputStream in, CharsetDecoder dec) 創建使用給定字符集解碼器的 InputStreamReader。
InputStreamReader(InputStream in, String charsetName) 創建使用指定字符集的 InputStreamReader。

對象方法(前兩個方法在父類是抽象方法)
 void close( ) 關閉該流並釋放與之關聯的所有資源。
int read(char[ ] cbuf, int offset, int length) 將字符讀入數組中的某一部分。
int read( ) 讀取單個字符。
String getEncoding() 

返回此流使用的字符編碼的名稱。

如果該編碼有歷史上用過的名稱,則返回該名稱;否則返回該編碼的規範化名稱。
如果使用 InputStreamReader(InputStream, String) 構造方法創建此實例,則返回的由此編碼生成的唯一名稱可能與傳遞給該構造方法的名稱不一樣。如果流已經關閉,則此方法將會返回 null。

boolean ready( ) 判斷此流是否已經準備好用於讀取。
其他方法直接繼承自java.io.Reader類。


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