鴻蒙OS SequenceInputStream

2022-10-25 15:18 更新

SequenceInputStream

java.lang.Object

|---java.io.InputStream

|---|---java.io.SequenceInputStream

public class SequenceInputStream
extends InputStream

SequenceInputStream 表示其他輸入流的邏輯串聯(lián)。 它從輸入流的有序集合開始,從第一個(gè)讀取直到到達(dá)文件末尾,然后從第二個(gè)讀取,依此類推,直到最后一個(gè)包含的輸入流到達(dá)文件末尾。

Since:

JDK1.0

構(gòu)造函數(shù)摘要

構(gòu)造函數(shù) 描述
SequenceInputStream(InputStream s1, InputStream s2) 通過記住兩個(gè)參數(shù)來初始化一個(gè)新創(chuàng)建的 SequenceInputStream,這兩個(gè)參數(shù)將按順序讀取,首先是 s1,然后是 s2,以提供要從此 SequenceInputStream 讀取的字節(jié)。
SequenceInputStream(Enumeration<? extends InputStream> e) 通過記住參數(shù)來初始化新創(chuàng)建的 SequenceInputStream,該參數(shù)必須是一個(gè) Enumeration,它生成運(yùn)行時(shí)類型為 InputStream 的對(duì)象。

方法總結(jié)

修飾符和類型 方法 描述
int available() 返回當(dāng)前底層輸入流的下一次調(diào)用方法時(shí)可以從當(dāng)前底層輸入流讀?。ɑ蛱^)而不會(huì)阻塞的字節(jié)數(shù)的估計(jì)值。
void close() 關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。
int read() 從此輸入流中讀取數(shù)據(jù)的下一個(gè)字節(jié)。
int read(byte[] b, int off, int len) 從此輸入流中讀取最多 len 個(gè)字節(jié)的數(shù)據(jù)到一個(gè)字節(jié)數(shù)組中。
從類 java.io.InputStream 繼承的方法
mark, markSupported, read, reset, skip
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

SequenceInputStream

public SequenceInputStream(Enumeration<? extends InputStream> e)

通過記住參數(shù)來初始化新創(chuàng)建的 SequenceInputStream,該參數(shù)必須是一個(gè) Enumeration,它生成運(yùn)行時(shí)類型為 InputStream 的對(duì)象。 將讀取枚舉產(chǎn)生的輸入流,以便提供要從此 SequenceInputStream 讀取的字節(jié)。 在枚舉中的每個(gè)輸入流用盡后,通過調(diào)用其 close 方法將其關(guān)閉。

參數(shù):

參數(shù)名稱 參數(shù)描述
e 輸入流的枚舉。

SequenceInputStream

public SequenceInputStream(InputStream s1, InputStream s2)

通過記住兩個(gè)參數(shù)來初始化一個(gè)新創(chuàng)建的 SequenceInputStream,這兩個(gè)參數(shù)將按順序讀取,首先是 s1,然后是 s2,以提供要從此 SequenceInputStream 讀取的字節(jié)。

參數(shù):

參數(shù)名稱 參數(shù)描述
s1 要讀取的第一個(gè)輸入流。
s2 要讀取的第二個(gè)輸入流。

方法詳情

available

public int available() throws IOException

返回當(dāng)前底層輸入流的下一次調(diào)用方法時(shí)可以從當(dāng)前底層輸入流讀?。ɑ蛱^)而不會(huì)阻塞的字節(jié)數(shù)的估計(jì)值。 下一次調(diào)用可能是同一個(gè)線程或另一個(gè)線程。 單次讀取或跳過這么多字節(jié)不會(huì)阻塞,但可能會(huì)讀取或跳過更少的字節(jié)。

此方法僅調(diào)用當(dāng)前底層輸入流的 available 并返回結(jié)果。

覆蓋:

在類 InputStream 中可用

返回:

估計(jì)可以從當(dāng)前底層輸入流中讀?。ɑ蛱^)而不會(huì)阻塞的字節(jié)數(shù),如果此輸入流已通過調(diào)用其 close() 方法關(guān)閉,則為 0

Throws:

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

Since:

JDK1.1

read

public int read() throws IOException

從此輸入流中讀取數(shù)據(jù)的下一個(gè)字節(jié)。 字節(jié)作為 int 返回,范圍為 0 到 255。如果由于到達(dá)流的末尾而沒有可用的字節(jié),則返回值 -1。 此方法會(huì)一直阻塞,直到輸入數(shù)據(jù)可用、檢測(cè)到流結(jié)束或引發(fā)異常。

此方法嘗試從當(dāng)前子流中讀取一個(gè)字符。 如果它到達(dá)流的末尾,它會(huì)調(diào)用當(dāng)前子流的 close 方法并從下一個(gè)子流開始讀取。

指定者:

讀入類 InputStream

返回:

數(shù)據(jù)的下一個(gè)字節(jié),如果到達(dá)流的末尾,則為 -1。

Throws:

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

read

public int read(byte[] b, int off, int len) throws IOException

從此輸入流中讀取最多 len 個(gè)字節(jié)的數(shù)據(jù)到一個(gè)字節(jié)數(shù)組中。 如果 len 不為零,則該方法會(huì)阻塞,直到至少有 1 個(gè)字節(jié)的輸入可用; 否則,不讀取任何字節(jié)并返回 0。

SequenceInputStream 的 read 方法嘗試從當(dāng)前子流中讀取數(shù)據(jù)。 如果由于子流到達(dá)流的末尾而導(dǎo)致讀取任何字符失敗,則調(diào)用當(dāng)前子流的close方法并從下一個(gè)子流開始讀取。

覆蓋:

讀入類 InputStream

參數(shù):

參數(shù)名稱 參數(shù)描述
b 讀取數(shù)據(jù)的緩沖區(qū)。
off 數(shù)組 b 中寫入數(shù)據(jù)的起始偏移量。
len 讀取的最大字節(jié)數(shù)。

返回:

int 讀取的字節(jié)數(shù)。

Throws:

Throw名稱 Throw描述
NullPointerException 如果 b 為空。
IndexOutOfBoundsException 如果 off 為負(fù)數(shù),len 為負(fù)數(shù),或者 len 大于 b.length - off
IOException 如果發(fā)生 I/O 錯(cuò)誤。

close

public void close() throws IOException

關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。 關(guān)閉的 SequenceInputStream 無法執(zhí)行輸入操作,也無法重新打開。

如果此流是從枚舉創(chuàng)建的,則從枚舉中請(qǐng)求所有剩余元素并在 close 方法返回之前關(guān)閉。

指定者:

在接口 AutoCloseable 中關(guān)閉

指定者:

在接口Closeable中關(guān)閉

覆蓋:

在類 InputStream 中關(guān)閉

Throws:

Throw名稱 Throw描述
IOException 如果發(fā)生 I/O 錯(cuò)誤。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)