W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
java.lang.Object
|---java.io.InputStream
|---|---java.io.FilterInputStream
public class FilterInputStream
extends InputStream
FilterInputStream 包含一些其他輸入流,它用作其基本數(shù)據(jù)源,可能沿途轉(zhuǎn)換數(shù)據(jù)或提供附加功能。 FilterInputStream 類本身只是簡單地覆蓋 InputStream 的所有方法,其版本將所有請求傳遞給包含的輸入流。 FilterInputStream 的子類可能會進(jìn)一步覆蓋其中一些方法,并且還可能提供額外的方法和字段。
Since:
JDK1.0
修飾符和類型 | 字段 | 描述 |
---|---|---|
protected InputStream | in | 要過濾的輸入流。 |
修飾符 | 構(gòu)造函數(shù) | 描述 |
---|---|---|
protected | FilterInputStream(InputStream in) | 通過將參數(shù) in 分配給字段 this.in 來創(chuàng)建一個 FilterInputStream,以便記住它以供以后使用。 |
修飾符和類型 | 方法 | 描述 |
---|---|---|
int | available() | 返回可以從此輸入流中讀取(或跳過)的字節(jié)數(shù)的估計值,而不會被此輸入流的方法的下一個調(diào)用者阻塞。 |
void | close() | 關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。 |
void | mark(int readlimit) | 標(biāo)記此輸入流中的當(dāng)前位置。 |
boolean | markSupported() | 測試此輸入流是否支持 mark 和 reset 方法。 |
int | read() | 從此輸入流中讀取數(shù)據(jù)的下一個字節(jié)。 |
int | read(byte[] b) | 從此輸入流中讀取最多 byte.length 個字節(jié)的數(shù)據(jù)到一個字節(jié)數(shù)組中。 |
int | read(byte[] b, int off, int len) | 從此輸入流中讀取最多 len 個字節(jié)的數(shù)據(jù)到一個字節(jié)數(shù)組中。 |
void | reset() | 將此流重新定位到最后一次在此輸入流上調(diào)用標(biāo)記方法時的位置。 |
long | skip(long n) | 跳過并丟棄輸入流中的 n 字節(jié)數(shù)據(jù)。 |
從類 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
protected volatile InputStream in
要過濾的輸入流。
protected FilterInputStream(InputStream in)
通過將參數(shù) in 分配給字段 this.in 來創(chuàng)建一個 FilterInputStream,以便記住它以供以后使用。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
in | 基礎(chǔ)輸入流,如果要在沒有基礎(chǔ)流的情況下創(chuàng)建此實例,則為 null。 |
public int read() throws IOException
從此輸入流中讀取數(shù)據(jù)的下一個字節(jié)。 值字節(jié)作為 int 返回,范圍為 0 到 255。如果由于到達(dá)流的末尾而沒有可用的字節(jié),則返回值 -1。 此方法會一直阻塞,直到輸入數(shù)據(jù)可用、檢測到流結(jié)束或引發(fā)異常。
這個方法簡單地執(zhí)行 in.read() 并返回結(jié)果。
指定者:
讀入類 InputStream
返回:
數(shù)據(jù)的下一個字節(jié),如果到達(dá)流的末尾,則為 -1。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public int read(byte[] b) throws IOException
從此輸入流中讀取最多 byte.length 個字節(jié)的數(shù)據(jù)到一個字節(jié)數(shù)組中。 此方法會阻塞,直到某些輸入可用。
該方法只執(zhí)行調(diào)用 read(b, 0, b.length) 并返回結(jié)果。 重要的是它不改為 in.read(b) ; FilterInputStream 的某些子類取決于實際使用的實現(xiàn)策略。
覆蓋:
讀入類 InputStream
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
b | 讀取數(shù)據(jù)的緩沖區(qū)。 |
返回:
讀入緩沖區(qū)的總字節(jié)數(shù),如果由于到達(dá)流的末尾而沒有更多數(shù)據(jù),則為 -1。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public int read(byte[] b, int off, int len) throws IOException
從此輸入流中讀取最多 len 個字節(jié)的數(shù)據(jù)到一個字節(jié)數(shù)組中。 如果 len 不為零,則該方法會阻塞,直到某些輸入可用; 否則,不讀取任何字節(jié)并返回 0。
該方法簡單地執(zhí)行 in.read(b, off, len) 并返回結(jié)果。
覆蓋:
讀入類 InputStream
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
b | 讀取數(shù)據(jù)的緩沖區(qū)。 |
off | 目標(biāo)數(shù)組 b 中的起始偏移量 |
len | 讀取的最大字節(jié)數(shù)。 |
返回:
讀入緩沖區(qū)的總字節(jié)數(shù),如果由于到達(dá)流的末尾而沒有更多數(shù)據(jù),則為 -1。
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 b 為空。 |
IndexOutOfBoundsException | 如果 off 為負(fù)數(shù),len 為負(fù)數(shù),或者 len 大于 b.length - off |
IOException | 如果發(fā)生 I/O 錯誤。 |
public long skip(long n) throws IOException
跳過并丟棄輸入流中的 n 字節(jié)數(shù)據(jù)。 由于各種原因,skip 方法最終可能會跳過一些較小的字節(jié)數(shù),可能為 0。返回實際跳過的字節(jié)數(shù)。
這個方法簡單地執(zhí)行 in.skip(n)。
覆蓋:
在 InputStream 類中跳過
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
n | 要跳過的字節(jié)數(shù)。 |
返回:
跳過的實際字節(jié)數(shù)。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果流不支持查找,或者發(fā)生其他一些 I/O 錯誤。 |
public int available() throws IOException
返回可以從此輸入流中讀取(或跳過)的字節(jié)數(shù)的估計值,而不會被此輸入流的方法的下一個調(diào)用者阻塞。 下一個調(diào)用者可能是同一個線程或另一個線程。 單次讀取或跳過這么多字節(jié)不會阻塞,但可能會讀取或跳過更少的字節(jié)。
此方法返回 in.available() 的結(jié)果。
覆蓋:
在類 InputStream 中可用
返回:
估計可以從該輸入流中讀取(或跳過)而不阻塞的字節(jié)數(shù)。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public void close() throws IOException
關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。 這個方法只是簡單地執(zhí)行 in.close()。
指定者:
在接口 AutoCloseable 中關(guān)閉
指定者:
在接口Closeable中關(guān)閉
覆蓋:
在類 InputStream 中關(guān)閉
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public void mark(int readlimit)
標(biāo)記此輸入流中的當(dāng)前位置。 對 reset 方法的后續(xù)調(diào)用將此流重新定位到最后標(biāo)記的位置,以便后續(xù)讀取重新讀取相同的字節(jié)。
readlimit 參數(shù)告訴此輸入流允許在標(biāo)記位置無效之前讀取那么多字節(jié)。
這個方法簡單地執(zhí)行 in.mark(readlimit)。
覆蓋:
在 InputStream 類中標(biāo)記
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
readlimit | 在標(biāo)記位置無效之前可以讀取的最大字節(jié)數(shù)。 |
public void reset() throws IOException
將此流重新定位到最后一次在此輸入流上調(diào)用標(biāo)記方法時的位置。
這個方法只是簡單地執(zhí)行 in.reset()。
流標(biāo)記旨在用于需要提前閱讀以查看流中內(nèi)容的情況。 通常這最容易通過調(diào)用一些通用解析器來完成。 如果流是由解析處理的類型,它就會愉快地前進(jìn)。 如果流不是那種類型,解析器應(yīng)該在失敗時拋出一個異常。 如果這發(fā)生在 readlimit 字節(jié)內(nèi),它允許外部代碼重置流并嘗試另一個解析器。
覆蓋:
在類 InputStream 中重置
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果流尚未被標(biāo)記或標(biāo)記已失效。 |
public boolean markSupported()
測試此輸入流是否支持 mark 和 reset 方法。 這個方法只是簡單地執(zhí)行 in.markSupported()。
覆蓋:
類 InputStream 中的 markSupported
返回:
如果此流類型支持標(biāo)記和重置方法,則為 true; 否則為 false。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: