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