java.io
類 InputStreamReader
java.io.InputStreamReader
所有已實現的接口:
直接已知子類:
public class InputStreamReader
extends Reader
InputStreamReader 是字節流通向字符流的橋梁:它使用指定的 charset 讀取字節並將其解碼為字符。它使用的字符集可以由名稱指定或顯式給定,或者可以接受平台默認的字符集。
每次調用 InputStreamReader 中的一個 read() 方法都會導致從底層輸入流讀取一個或多個字節。要啟用從字節到字符的有效轉換,可以提前從底層流讀取更多的字節,使其超過滿足當前讀取操作所需的字節。
為了達到最高效率,可要考慮在 BufferedReader 內包裝 InputStreamReader。例如:
BufferedReader in
= newBufferedReader(new InputStreamReader(System.in));
從以下版本開始:
JDK1.1
另請參見:
BufferedReader, InputStream, Charset
從類 java.io.Reader 繼承的字段 |
構造方法摘要 |
|
InputStreamReader(InputStream in) |
|
InputStreamReader(InputStream in, Charset cs) |
|
InputStreamReader(InputStream in, CharsetDecoder dec) |
|
InputStreamReader(InputStream in, String charsetName) |
|
方法摘要 |
|
void |
close() |
getEncoding() |
|
int |
read() |
int |
read(char[] cbuf, int offset, int length) |
boolean |
ready() |
從類 java.io.Reader 繼承的方法 |
從類 java.lang.Object 繼承的方法 |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
構造方法詳細信息 |
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
public InputStreamReader(InputStream in,
CharsetDecoder dec)
創建使用給定字符集解碼器的InputStreamReader。
參數:
in - InputStream
dec - 字符集解碼器
從以下版本開始:
1.4
public String getEncoding()
返回此流使用的字符編碼的名稱。
如果該編碼有歷史上用過的名稱,則返回該名稱;否則返回該編碼的規范化名稱。
如果使用 InputStreamReader(InputStream,String) 構造方法創建此實例,則返回的由此編碼生成的唯一名稱可能與傳遞給該構造方法的名稱不一樣。如果流已經關閉,則此方法將會返回 null。
返回:
此編碼的歷史名稱,如果流已經關閉,則返回 null
另請參見:
public int read()
throws IOException
讀取單個字符。
覆蓋:
返回:
讀取的字符,如果已到達流的末尾,則返回 -1
拋出:
IOException - 如果發生 I/O 錯誤
public int read(char[] cbuf,
intoffset,
intlength)
throws IOException
將字符讀入數組中的某一部分。
指定者:
參數:
cbuf - 目標緩沖區
offset - 從其處開始存儲字符的偏移量
length - 要讀取的最大字符數
返回:
讀取的字符數,如果已到達流的末尾,則返回 -1
拋出:
IOException - 如果發生 I/O 錯誤
public boolean ready()
throws IOException
判斷此流是否已經准備好用於讀取。如果其輸入緩沖區不為空,或者可從底層字節流讀取字節,則 InputStreamReader 已做好被讀取准備。
覆蓋:
返回:
如果保證下一個 read() 不阻塞輸入,則返回 True,否則返回 false。注意,返回 false 並不保證阻塞下一次讀取。
拋出:
IOException - 如果發生 I/O 錯誤
public void close()
throws IOException
從類 Reader復制的描述
關閉該流並釋放與之關聯的所有資源。在關閉該流后,再調用 read()、ready()、mark()、reset() 或 skip() 將拋出IOException。關閉以前關閉的流無效。
指定者:
指定者:
拋出:
IOException - 如果發生 I/O 錯誤