鴻蒙OS Reader

2022-10-25 15:08 更新

Reader

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ù)摘要

修飾符 構造函數(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

字段詳細信息

lock

protected Object lock

用于同步此流上的操作的對象。 為了提高效率,字符流對象可以使用自身以外的對象來保護臨界區(qū)。 因此,子類應該使用該字段中的對象而不是 this 或同步方法。

構造函數(shù)詳細信息

Reader

protected Reader()

創(chuàng)建一個新的字符流閱讀器,其關鍵部分將在閱讀器本身上同步。

Reader

protected Reader(Object lock)

創(chuàng)建一個新的字符流閱讀器,其關鍵部分將在給定對象上同步。

參數(shù):

參數(shù)名稱 參數(shù)描述
lock 要同步的對象。

方法詳情

read

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

read

public int read() throws IOException

讀取單個字符。 此方法將阻塞,直到字符可用、發(fā)生 I/O 錯誤或到達流的末尾。

打算支持有效的單字符輸入的子類應覆蓋此方法。

返回:

讀取的字符,為 0 到 65535 (0x00-0xffff) 范圍內的整數(shù),如果已到達流的末尾,則為 -1

Throws:

Throw名稱 Throw描述
IOException 如果發(fā)生 I/O 錯誤

read

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 錯誤

read

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 錯誤

skip

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 錯誤

ready

public boolean ready() throws IOException

告訴這個流是否準備好被讀取。

返回:

如果保證下一個 read() 不會阻塞輸入,則為 true,否則為 false。 請注意,返回 false 并不能保證下一次讀取將阻塞。

Throws:

Throw名稱 Throw描述
IOException 如果發(fā)生 I/O 錯誤

markSupported

public boolean markSupported()

告知此流是否支持 mark() 操作。 默認實現(xiàn)總是返回 false。 子類應覆蓋此方法。

返回:

當且僅當此流支持標記操作時才為 true。

mark

public void mark(int readAheadLimit) throws IOException

標記流中的當前位置。 對 reset() 的后續(xù)調用將嘗試將流重新定位到該點。 并非所有字符輸入流都支持 mark() 操作。

參數(shù):

參數(shù)名稱 參數(shù)描述
readAheadLimit 在保留標記的同時限制可以讀取的字符數(shù)。 讀取這么多字符后,嘗試重置流可能會失敗。

Throws:

Throw名稱 Throw描述
IOException 如果流不支持 mark(),或者發(fā)生其他一些 I/O 錯誤

reset

public void reset() throws IOException

重置流。 如果流已被標記,則嘗試將其重新定位在標記處。 如果流尚未被標記,則嘗試以適合特定流的某種方式將其重置,例如將其重新定位到其起點。 并非所有字符輸入流都支持 reset() 操作,有些支持 reset() 但不支持 mark()。

Throws:

Throw名稱 Throw描述
IOException 如果流沒有被標記,或者標記已經失效,或者流不支持 reset(),或者發(fā)生其他一些 I/O 錯誤

close

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 錯誤
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號