JavaTM 2 Platform
Standard Ed. 6

java.io
類別 InputStreamReader

java.lang.Object
  繼承者 java.io.Reader
      繼承者 java.io.InputStreamReader
所有已實作的介面:
Closeable, Readable
直接已知子類別:
FileReader

public class InputStreamReader
extends Reader

InputStreamReader 是位元組串流通向字元串流的橋樑:它使用指定的 charset 讀取位元組並將其解碼為字元。它使用的字元集可以由名稱指定或顯式給定,或者可以接受平臺預設的字元集。

每次調用 InputStreamReader 中的一個 read() 方法都會導致從底層輸入串流讀取一個或多個位元組。要啟用從位元組到字元的有效轉換,可以提前從底層串流讀取更多的位元組,使其超過滿足當前讀取操作所需的位元組。

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

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

從以下版本開始:
JDK1.1
另請參見:
BufferedReader, InputStream, Charset

欄位摘要
 
從類別 java.io.Reader 繼承的欄位
lock
 
建構子摘要
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()
          讀取單個字元。
 int read(char[] cbuf, int offset, int length)
          將字元讀入陣列中的某一部分。
 boolean ready()
          判斷此串流是否已經準備好用於讀取。
 
從類別 java.io.Reader 繼承的方法
mark, markSupported, read, read, reset, skip
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

InputStreamReader

public InputStreamReader(InputStream in)
創建一個使用預設字元集的 InputStreamReader。

參數:
in - InputStream

InputStreamReader

public InputStreamReader(InputStream in,
                         String charsetName)
                  throws UnsupportedEncodingException
創建使用指定字元集的 InputStreamReader。

參數:
in - InputStream
charsetName - 受支持的 charset 的名稱
拋出:
UnsupportedEncodingException - 如果不支持指定的字元集

InputStreamReader

public InputStreamReader(InputStream in,
                         Charset cs)
創建使用給定字元集的 InputStreamReader。

參數:
in - InputStream
cs - 字元集
從以下版本開始:
1.4

InputStreamReader

public InputStreamReader(InputStream in,
                         CharsetDecoder dec)
創建使用給定字元集解碼器的 InputStreamReader。

參數:
in - InputStream
dec - 字元集解碼器
從以下版本開始:
1.4
方法詳細資訊

getEncoding

public String getEncoding()
返回此串流使用的字元編碼的名稱。

如果該編碼有歷史上用過的名稱,則返回該名稱;否則返回該編碼的規範化名稱。

如果使用 InputStreamReader(InputStream, String) 建構子創建此實例,則返回的由此編碼產生的唯一名稱可能與傳遞給該建構子的名稱不一樣。如果串流已經關閉,則此方法將會返回 null

返回:
此編碼的歷史名稱,如果串流已經關閉,則返回 null
另請參見:
Charset

read

public int read()
         throws IOException
讀取單個字元。

覆寫:
類別 Reader 中的 read
返回:
讀取的字元,如果已到達串流的末尾,則返回 -1
拋出:
IOException - 如果發生 I/O 錯誤

read

public int read(char[] cbuf,
                int offset,
                int length)
         throws IOException
將字元讀入陣列中的某一部分。

指定者:
類別 Reader 中的 read
參數:
cbuf - 目標緩衝區
offset - 從其處開始存儲字元的偏移量
length - 要讀取的最大字元數
返回:
讀取的字元數,如果已到達串流的末尾,則返回 -1
拋出:
IOException - 如果發生 I/O 錯誤

ready

public boolean ready()
              throws IOException
判斷此串流是否已經準備好用於讀取。如果其輸入緩衝區不為空,或者可從底層位元組串流讀取位元組,則 InputStreamReader 已做好被讀取準備。

覆寫:
類別 Reader 中的 ready
返回:
如果保證下一個 read() 不阻塞輸入,則返回 True,否則返回 false。注意,返回 false 並不保證阻塞下一次讀取。
拋出:
IOException - 如果發生 I/O 錯誤

close

public void close()
           throws IOException
從類別 Reader 複製的描述
關閉該串流並釋放與之關聯的所有資源。在關閉該串流後,再調用 read()、ready()、mark()、reset() 或 skip() 將拋出 IOException。關閉以前關閉的串流無效。

指定者:
介面 Closeable 中的 close
指定者:
類別 Reader 中的 close
拋出:
IOException - 如果發生 I/O 錯誤

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only