掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流

java.lang.Object
|---java.io.Reader
|---|---java.io.InputStreamReader
public class InputStreamReader
extends ReaderInputStreamReader 是從字節(jié)流到字符流的橋梁:它讀取字節(jié)并使用指定的字符集將它們解碼為字符。 它使用的字符集可以由名稱指定,也可以顯式給出,或者可以接受平臺的默認字符集。
InputStreamReader 的 read() 方法之一的每次調(diào)用都可能導(dǎo)致從底層字節(jié)輸入流中讀取一個或多個字節(jié)。 為了實現(xiàn)字節(jié)到字符的有效轉(zhuǎn)換,可以從底層流中預(yù)先讀取比滿足當前讀取操作所需的更多的字節(jié)。
為了獲得最高效率,請考慮將 InputStreamReader 包裝在 BufferedReader 中。 例如:
BufferedReader in
= new BufferedReader(new InputStreamReader(System.in));Since:
JDK1.1
| 從類 java.io.Reader 繼承的字段 |
|---|
| lock |
| 構(gòu)造函數(shù) | 描述 |
|---|---|
| InputStreamReader(InputStream in) | 創(chuàng)建一個使用默認字符集的 InputStreamReader。 |
| InputStreamReader(InputStream in, String charsetName) | 創(chuàng)建一個使用命名字符集的 InputStreamReader。 |
| InputStreamReader(InputStream in, Charset cs) | 創(chuàng)建一個使用給定字符集的 InputStreamReader。 |
| InputStreamReader(InputStream in, CharsetDecoder dec) | 創(chuàng)建一個使用給定字符集解碼器的 InputStreamReader。 |
| 修飾符和類型 | 方法 | 描述 |
|---|---|---|
| void | close() | 關(guān)閉流并釋放與其關(guān)聯(lián)的任何系統(tǒng)資源。 |
| String | getEncoding() | 返回此流使用的字符編碼的名稱。 |
| int | read() | 讀取單個字符。 |
| int | read(char[] cbuf, int offset, int length) | 將字符讀入數(shù)組的一部分。 |
| boolean | ready() | 告訴這個流是否準備好被讀取。 |
| 從類 java.lang.Object 繼承的方法 |
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 從類 java.io.Reader 繼承的方法 |
|---|
| mark, markSupported, read, read, reset, skip |
public InputStreamReader(InputStream in)
創(chuàng)建一個使用默認字符集的 InputStreamReader。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| in | 輸入流 |
public InputStreamReader(InputStream in, String charsetName) throws UnsupportedEncodingException
創(chuàng)建一個使用命名字符集的 InputStreamReader。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| in | 輸入流 |
| charsetName | 支持的字符集的名稱 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| UnsupportedEncodingException | 如果不支持命名字符集 |
public InputStreamReader(InputStream in, Charset cs)
創(chuàng)建一個使用給定字符集的 InputStreamReader。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| in | 輸入流 |
| cs | 一個字符集 |
Since:
1.4
public InputStreamReader(InputStream in, CharsetDecoder dec)
創(chuàng)建一個使用給定字符集解碼器的 InputStreamReader。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| in | 輸入流 |
| dec | 一個字符集解碼器 |
Since:
1.4
public String getEncoding()
返回此流使用的字符編碼的名稱。
如果編碼具有歷史名稱,則返回該名稱; 否則返回編碼的規(guī)范名稱。
如果此實例是使用 InputStreamReader(java.io.InputStream,java.lang.String) 構(gòu)造函數(shù)創(chuàng)建的,則返回的名稱(對于編碼而言是唯一的)可能與傳遞給構(gòu)造函數(shù)的名稱不同。 如果流已關(guān)閉,此方法將返回 null。
返回:
此編碼的歷史名稱,如果流已關(guān)閉,則為 null
public int read() throws IOException
讀取單個字符。
覆蓋:
read in class Reader
返回:
讀取的字符,如果已到達流的末尾,則為 -1
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IOException | 如果發(fā)生 I/O 錯誤 |
public int read(char[] cbuf, int offset, int length) throws IOException
將字符讀入數(shù)組的一部分。
指定者:
read in class Reader
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| cbuf | 目標緩沖區(qū) |
| offset | 開始存儲字符的偏移量 |
| length | 要讀取的最大字符數(shù) |
返回:
讀取的字符數(shù),如果已到達流的末尾,則為 -1
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IOException | 如果發(fā)生 I/O 錯誤 |
public boolean ready() throws IOException
告訴這個流是否準備好被讀取。 如果 InputStreamReader 的輸入緩沖區(qū)不為空,或者可以從底層字節(jié)流中讀取字節(jié),則 InputStreamReader 已準備就緒。
覆蓋:
ready in class Reader
返回:
如果保證下一個 read() 不會阻塞輸入,則為 true,否則為 false。 請注意,返回 false 并不能保證下一次讀取將阻塞。
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IOException | 如果發(fā)生 I/O 錯誤 |
public void close() throws IOException
從類復(fù)制的描述:Reader
關(guān)閉流并釋放與其關(guān)聯(lián)的任何系統(tǒng)資源。 關(guān)閉流后,進一步的 read()、ready()、mark()、reset() 或 skip() 調(diào)用將引發(fā) IOException。 關(guān)閉以前關(guān)閉的流沒有效果。
指定者:
在接口 AutoCloseable 中關(guān)閉
指定者:
在接口Closeable中關(guān)閉
指定者:
close in class Reader
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IOException | 如果發(fā)生 I/O 錯誤 |

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流