鴻蒙OS Reader

2022-10-25 15:08 更新

Reader

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

修飾符 構(gòu)造函數(shù) 描述
protected Reader() 創(chuàng)建一個(gè)新的字符流閱讀器,其關(guān)鍵部分將在閱讀器本身上同步。
protected Reader(Object lock) 創(chuàng)建一個(gè)新的字符流閱讀器,其關(guān)鍵部分將在給定對(duì)象上同步。

方法總結(jié)

修飾符和類(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

字段詳細(xì)信息

lock

protected Object lock

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

構(gòu)造函數(shù)詳細(xì)信息

Reader

protected Reader()

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

Reader

protected Reader(Object lock)

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

參數(shù):

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

方法詳情

read

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

read

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ò)誤

read

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ò)誤

read

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ò)誤

skip

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ò)誤

ready

public boolean ready() throws IOException

告訴這個(gè)流是否準(zhǔn)備好被讀取。

返回:

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

Throws:

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

markSupported

public boolean markSupported()

告知此流是否支持 mark() 操作。 默認(rèn)實(shí)現(xiàn)總是返回 false。 子類(lèi)應(yīng)覆蓋此方法。

返回:

當(dāng)且僅當(dāng)此流支持標(biāo)記操作時(shí)才為 true。

mark

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ò)誤

reset

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ò)誤

close

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ò)誤
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)