InputStreamReader

 一、InputStreamReader類
1、java.lang.Object
  繼承者java.io.Reader
      繼承者java.io.InputStreamReader 所有已實現的接口: Closeable, Readable 直接已知子類: FileReader
2、public class InputStreamReader extends Reader 
InputStreamReader 是字節流通向字符流的橋樑:它使用指定的 charset 讀取字節並將其解碼爲字符。它使用的字符集可以由名稱指定或顯式給定,否則可能接受平臺默認的字符集。
每次調用 InputStreamReader 中的一個 read() 方法都會導致從基礎輸入流讀取一個或多個字節。要啓用從字節到字符的有效轉換,可以提前從基礎流讀取更多的字節,使其超過滿足當前讀取操作所需的字節。
爲了達到最高效率,可要考慮在 BufferedReader 內包裝 InputStreamReader。例如: 
 BufferedReader in   = new BufferedReader(new InputStreamReader(System.in));
3、InputStreamReader(InputStream in)
          創建一個使用默認字符集的 InputStreamReader。
InputStreamReader(InputStream in, Charset cs)
          創建使用給定字符集的 InputStreamReader。
InputStreamReader(InputStream in, CharsetDecoder dec)
          創建使用給定字符集解碼器的 InputStreamReader。
InputStreamReader(InputStream in, String charsetName)
          創建使用指定字符集的 InputStreamReader。
4、常用方法
(1)public String getEncoding()
返回此流使用的字符編碼的名稱。 如果該編碼有歷史上用過的名稱,則返回該名稱;否則返回該編碼的規範化名稱。 如果使用 InputStreamReader(InputStream, String) 構造方法創建此實例,則返回的由此編碼生成的唯一名稱可能與傳遞給該構造方法的名稱不一樣。如果流已經關閉,則此方法可能返回 null
返回:此編碼的歷史名稱,如果流已經關閉,則可能返回 null 另請參見: Charset
(2)public int read()   throws IOException 讀取單個字符。
覆蓋:Reader 中的 read
返回: 讀取的字符,如果已到達流的末尾,則返回 -1
拋出: IOException - 如果發生 I/O 錯誤
(3)public int read(char[] cbuf,  int offset, int length)   throws IOException將字符讀入數組中的某一部分。
指定者:Reader 中的 read
參數: cbuf - 目標緩衝區 offset - 以其處開始存儲字符的偏移量 length - 要讀取的最大字符數
返回: 讀取的字符數,如果已到達流的末尾,則返回 -1
拋出: IOException - 如果發生 I/O 錯誤

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