W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
java.lang.Object
|---java.io.Reader
public abstract class Reader
extends Object
implements Readable, Closeable
用于讀取字符流的抽象類(lèi)。 子類(lèi)必須實(shí)現(xiàn)的唯一方法是 read(char[], int, int) 和 close()。 然而,大多數(shù)子類(lèi)將覆蓋此處定義的一些方法,以提供更高的效率、附加功能或兩者兼而有之。
Since:
JDK1.1
修飾符和類(lèi)型 | 字段 | 描述 |
---|---|---|
protected Object | lock | 用于同步此流上的操作的對(duì)象。 |
修飾符 | 構(gòu)造函數(shù) | 描述 |
---|---|---|
protected | Reader() | 創(chuàng)建一個(gè)新的字符流閱讀器,其關(guān)鍵部分將在閱讀器本身上同步。 |
protected | Reader(Object lock) | 創(chuàng)建一個(gè)新的字符流閱讀器,其關(guān)鍵部分將在給定對(duì)象上同步。 |
修飾符和類(lèi)型 | 方法 | 描述 |
---|---|---|
abstract void | close() | 關(guān)閉流并釋放與其關(guān)聯(lián)的任何系統(tǒng)資源。 |
void | mark(int readAheadLimit) | 標(biāo)記流中的當(dāng)前位置。 |
boolean | markSupported() | 告知此流是否支持 mark() 操作。 |
int | read() | 讀取單個(gè)字符。 |
int | read(char[] cbuf) | 將字符讀入數(shù)組。 |
abstract int | read(char[] cbuf, int off, int len) | 將字符讀入數(shù)組的一部分。 |
int | read(CharBuffer target) | 嘗試將字符讀入指定的字符緩沖區(qū)。 |
boolean | ready() | 告訴這個(gè)流是否準(zhǔn)備好被讀取。 |
void | reset() | 重置流。 |
long | skip(long n) | 跳過(guò)字符。 |
從類(lèi) java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
protected Object lock
用于同步此流上的操作的對(duì)象。 為了提高效率,字符流對(duì)象可以使用自身以外的對(duì)象來(lái)保護(hù)臨界區(qū)。 因此,子類(lèi)應(yīng)該使用該字段中的對(duì)象而不是 this 或同步方法。
protected Reader()
創(chuàng)建一個(gè)新的字符流閱讀器,其關(guān)鍵部分將在閱讀器本身上同步。
protected Reader(Object lock)
創(chuàng)建一個(gè)新的字符流閱讀器,其關(guān)鍵部分將在給定對(duì)象上同步。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
lock | 要同步的對(duì)象。 |
public int read(CharBuffer target) throws IOException
嘗試將字符讀入指定的字符緩沖區(qū)。 緩沖區(qū)按原樣用作字符的存儲(chǔ)庫(kù):所做的唯一更改是 put 操作的結(jié)果。 不執(zhí)行緩沖區(qū)的翻轉(zhuǎn)或倒帶。
指定者:
讀入接口Readable
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
target | 將字符讀入的緩沖區(qū) |
返回:
添加到緩沖區(qū)的字符數(shù),如果此字符源位于其末尾,則為 -1
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯(cuò)誤 |
NullPointerException | 如果 target 為空 |
ReadOnlyBufferException | 如果 target 是只讀緩沖區(qū) |
Since:
1.5
public int read() throws IOException
讀取單個(gè)字符。 此方法將阻塞,直到字符可用、發(fā)生 I/O 錯(cuò)誤或到達(dá)流的末尾。
打算支持有效的單字符輸入的子類(lèi)應(yīng)覆蓋此方法。
返回:
讀取的字符,為 0 到 65535 (0x00-0xffff) 范圍內(nèi)的整數(shù),如果已到達(dá)流的末尾,則為 -1
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯(cuò)誤 |
public int read(char[] cbuf) throws IOException
將字符讀入數(shù)組。 此方法將阻塞,直到某些輸入可用、發(fā)生 I/O 錯(cuò)誤或到達(dá)流的末尾。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
cbuf | 目標(biāo)緩沖區(qū) |
返回:
讀取的字符數(shù),如果已到達(dá)流的末尾,則為 -1
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯(cuò)誤 |
public abstract int read(char[] cbuf, int off, int len) throws IOException
將字符讀入數(shù)組的一部分。 此方法將阻塞,直到某些輸入可用、發(fā)生 I/O 錯(cuò)誤或到達(dá)流的末尾。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
cbuf | 目標(biāo)緩沖區(qū) |
off | 開(kāi)始存儲(chǔ)字符的偏移量 |
len | 要讀取的最大字符數(shù) |
返回:
讀取的字符數(shù),如果已到達(dá)流的末尾,則為 -1
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯(cuò)誤 |
public long skip(long n) throws IOException
跳過(guò)字符。 此方法將阻塞,直到某些字符可用、發(fā)生 I/O 錯(cuò)誤或到達(dá)流的末尾。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
n | 要跳過(guò)的字符數(shù) |
返回:
實(shí)際跳過(guò)的字符數(shù)
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果 n 為負(fù)數(shù)。 |
IOException | 如果發(fā)生 I/O 錯(cuò)誤 |
public boolean ready() throws IOException
告訴這個(gè)流是否準(zhǔn)備好被讀取。
返回:
如果保證下一個(gè) read() 不會(huì)阻塞輸入,則為 true,否則為 false。 請(qǐng)注意,返回 false 并不能保證下一次讀取將阻塞。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯(cuò)誤 |
public boolean markSupported()
告知此流是否支持 mark() 操作。 默認(rèn)實(shí)現(xiàn)總是返回 false。 子類(lèi)應(yīng)覆蓋此方法。
返回:
當(dāng)且僅當(dāng)此流支持標(biāo)記操作時(shí)才為 true。
public void mark(int readAheadLimit) throws IOException
標(biāo)記流中的當(dāng)前位置。 對(duì) reset() 的后續(xù)調(diào)用將嘗試將流重新定位到該點(diǎn)。 并非所有字符輸入流都支持 mark() 操作。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
readAheadLimit | 在保留標(biāo)記的同時(shí)限制可以讀取的字符數(shù)。 讀取這么多字符后,嘗試重置流可能會(huì)失敗。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果流不支持 mark(),或者發(fā)生其他一些 I/O 錯(cuò)誤 |
public void reset() throws IOException
重置流。 如果流已被標(biāo)記,則嘗試將其重新定位在標(biāo)記處。 如果流尚未被標(biāo)記,則嘗試以適合特定流的某種方式將其重置,例如將其重新定位到其起點(diǎn)。 并非所有字符輸入流都支持 reset() 操作,有些支持 reset() 但不支持 mark()。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果流沒(méi)有被標(biāo)記,或者標(biāo)記已經(jīng)失效,或者流不支持 reset(),或者發(fā)生其他一些 I/O 錯(cuò)誤 |
public abstract void close() throws IOException
關(guān)閉流并釋放與其關(guān)聯(lián)的任何系統(tǒng)資源。 關(guān)閉流后,進(jìn)一步的 read()、ready()、mark()、reset() 或 skip() 調(diào)用將引發(fā) IOException。 關(guān)閉以前關(guān)閉的流沒(méi)有效果。
指定者:
在接口 AutoCloseable 中關(guān)閉
指定者:
在接口Closeable中關(guān)閉
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯(cuò)誤 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: