鴻蒙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)。 它從輸入流的有序集合開始,從第一個讀取直到到達(dá)文件末尾,然后從第二個讀取,依此類推,直到最后一個包含的輸入流到達(dá)文件末尾。

Since:

JDK1.0

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

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

方法總結(jié)

修飾符和類型 方法 描述
int available() 返回當(dāng)前底層輸入流的下一次調(diào)用方法時可以從當(dāng)前底層輸入流讀?。ɑ蛱^)而不會阻塞的字節(jié)數(shù)的估計值。
void close() 關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。
int read() 從此輸入流中讀取數(shù)據(jù)的下一個字節(jié)。
int read(byte[] b, int off, int len) 從此輸入流中讀取最多 len 個字節(jié)的數(shù)據(jù)到一個字節(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ù)必須是一個 Enumeration,它生成運行時類型為 InputStream 的對象。 將讀取枚舉產(chǎn)生的輸入流,以便提供要從此 SequenceInputStream 讀取的字節(jié)。 在枚舉中的每個輸入流用盡后,通過調(diào)用其 close 方法將其關(guān)閉。

參數(shù):

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

SequenceInputStream

public SequenceInputStream(InputStream s1, InputStream s2)

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

參數(shù):

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

方法詳情

available

public int available() throws IOException

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

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

覆蓋:

在類 InputStream 中可用

返回:

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

Throws:

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

Since:

JDK1.1

read

public int read() throws IOException

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

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

指定者:

讀入類 InputStream

返回:

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

Throws:

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

read

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

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

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

覆蓋:

讀入類 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 錯誤。

close

public void close() throws IOException

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

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

指定者:

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

指定者:

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

覆蓋:

在類 InputStream 中關(guān)閉

Throws:

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號