新聞中心
InputStream

綏化網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站開(kāi)發(fā)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站成立與2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
java.lang.Object
|---java.io.InputStream
public abstract class InputStream
extends Object
implements Closeable這個(gè)抽象類(lèi)是代表字節(jié)輸入流的所有類(lèi)的超類(lèi)。
需要定義 InputStream 子類(lèi)的應(yīng)用程序必須始終提供返回下一個(gè)輸入字節(jié)的方法。
Since:
JDK1.0
構(gòu)造函數(shù)摘要
| 構(gòu)造函數(shù) | 描述 |
|---|---|
| InputStream() |
方法總結(jié)
| 修飾符和類(lèi)型 | 方法 | 描述 |
|---|---|---|
| int | available() | 返回可以從此輸入流中讀?。ɑ蛱^(guò))的字節(jié)數(shù)的估計(jì)值,而不會(huì)被下一次調(diào)用此輸入流的方法阻塞。 |
| void | close() | 關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。 |
| void | mark(int readlimit) | 標(biāo)記此輸入流中的當(dāng)前位置。 |
| boolean | markSupported() | 測(cè)試此輸入流是否支持 mark 和 reset 方法。 |
| abstract int | read() | 從輸入流中讀取數(shù)據(jù)的下一個(gè)字節(jié)。 |
| int | read(byte[] b) | 從輸入流中讀取一些字節(jié)并將它們存儲(chǔ)到緩沖區(qū)數(shù)組 b. |
| int | read(byte[] b, int off, int len) | 從輸入流中讀取最多 len 個(gè)字節(jié)的數(shù)據(jù)到一個(gè)字節(jié)數(shù)組中。 |
| void | reset() | 將此流重新定位到最后一次在此輸入流上調(diào)用標(biāo)記方法時(shí)的位置。 |
| long | skip(long n) | 跳過(guò)并丟棄此輸入流中的 n 字節(jié)數(shù)據(jù)。 |
| 從類(lèi) java.lang.Object 繼承的方法 |
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
構(gòu)造函數(shù)詳細(xì)信息
InputStream
public InputStream()
方法詳情
read
public abstract int read() throws IOException
從輸入流中讀取數(shù)據(jù)的下一個(gè)字節(jié)。 值字節(jié)作為 int 返回,范圍為 0 到 255。如果由于到達(dá)流的末尾而沒(méi)有可用的字節(jié),則返回值 -1。 此方法會(huì)一直阻塞,直到輸入數(shù)據(jù)可用、檢測(cè)到流結(jié)束或引發(fā)異常。
子類(lèi)必須提供此方法的實(shí)現(xiàn)。
返回:
數(shù)據(jù)的下一個(gè)字節(jié),如果到達(dá)流的末尾,則為 -1。
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IOException | 如果發(fā)生 I/O 錯(cuò)誤。 |
read
public int read(byte[] b) throws IOException
從輸入流中讀取一些字節(jié)并將它們存儲(chǔ)到緩沖區(qū)數(shù)組 b. 實(shí)際讀取的字節(jié)數(shù)以整數(shù)形式返回。 在輸入數(shù)據(jù)可用、檢測(cè)到文件結(jié)尾或引發(fā)異常之前,此方法會(huì)一直阻塞。
如果 b 的長(zhǎng)度為零,則不讀取任何字節(jié)并返回 0; 否則,將嘗試讀取至少一個(gè)字節(jié)。 如果由于流位于文件末尾而沒(méi)有可用字節(jié),則返回值 -1; 否則,至少讀取一個(gè)字節(jié)并將其存儲(chǔ)到 b 中。
讀取的第一個(gè)字節(jié)存儲(chǔ)在元素 b[0] 中,下一個(gè)字節(jié)存儲(chǔ)在 b[1] 中,依此類(lèi)推。 讀取的字節(jié)數(shù)最多等于 b 的長(zhǎng)度。 設(shè) k 為實(shí)際讀取的字節(jié)數(shù); 這些字節(jié)將存儲(chǔ)在元素 b[0] 到 b[k-1] 中,而元素 b[k] 到 b[b.length-1] 不受影響。
InputStream 類(lèi)的 read(b) 方法與以下效果相同:
read(b, 0, b.length) 參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| b | 讀取數(shù)據(jù)的緩沖區(qū)。 |
返回:
讀入緩沖區(qū)的總字節(jié)數(shù),如果由于到達(dá)流的末尾而沒(méi)有更多數(shù)據(jù),則為 -1。
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IOException | 如果由于文件結(jié)尾以外的任何原因無(wú)法讀取第一個(gè)字節(jié),如果輸入流已關(guān)閉,或者發(fā)生其他一些 I/O 錯(cuò)誤。 |
| NullPointerException | 如果 b 為空。 |
read
public int read(byte[] b, int off, int len) throws IOException
從輸入流中讀取最多 len 個(gè)字節(jié)的數(shù)據(jù)到一個(gè)字節(jié)數(shù)組中。嘗試讀取多達(dá) len 個(gè)字節(jié),但可能會(huì)讀取較小的字節(jié)數(shù)。實(shí)際讀取的字節(jié)數(shù)以整數(shù)形式返回。
在輸入數(shù)據(jù)可用、檢測(cè)到文件結(jié)尾或引發(fā)異常之前,此方法會(huì)一直阻塞。
如果 len 為零,則不讀取任何字節(jié)并返回 0;否則,將嘗試讀取至少一個(gè)字節(jié)。如果由于流位于文件末尾而沒(méi)有可用字節(jié),則返回值 -1;否則,至少讀取一個(gè)字節(jié)并將其存儲(chǔ)到 b 中。
讀取的第一個(gè)字節(jié)存儲(chǔ)在元素 b[off] 中,下一個(gè)字節(jié)存儲(chǔ)在 b[off+1] 中,依此類(lèi)推。讀取的字節(jié)數(shù)最多等于 len。設(shè) k 為實(shí)際讀取的字節(jié)數(shù);這些字節(jié)將存儲(chǔ)在元素 b[off] 到 b[off+k-1] 中,而元素 b[off+k] 到 b[off+len-1] 不受影響。
在每種情況下,元素 b[0] 到 b[off] 和元素 b[off+len] 到 b[b.length-1] 都不受影響。
InputStream 類(lèi)的 read(b, off, len) 方法只是重復(fù)調(diào)用方法 read()。如果第一個(gè)此類(lèi)調(diào)用導(dǎo)致 IOException,則該異常會(huì)從對(duì) read(b, off, len) 方法的調(diào)用中返回。如果對(duì) read() 的任何后續(xù)調(diào)用導(dǎo)致 IOException,則捕獲該異常并將其視為文件結(jié)尾;到目前為止讀取的字節(jié)存儲(chǔ)在 b 中,并返回發(fā)生異常之前讀取的字節(jié)數(shù)。此方法的默認(rèn)實(shí)現(xiàn)會(huì)阻塞,直到讀取了請(qǐng)求的輸入數(shù)據(jù)量 len、檢測(cè)到文件結(jié)尾或拋出異常。鼓勵(lì)子類(lèi)提供此方法的更有效實(shí)現(xiàn)。
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| b | 讀取數(shù)據(jù)的緩沖區(qū)。 |
| off | 數(shù)組 b 中寫(xiě)入數(shù)據(jù)的起始偏移量。 |
| len | 要讀取的最大字節(jié)數(shù)。 |
返回:
讀入緩沖區(qū)的總字節(jié)數(shù),如果由于到達(dá)流的末尾而沒(méi)有更多數(shù)據(jù),則為 -1。
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IOException | 如果由于文件結(jié)尾以外的任何原因無(wú)法讀取第一個(gè)字節(jié),或者輸入流已關(guān)閉,或者發(fā)生其他一些 I/O 錯(cuò)誤。 |
| NullPointerException | 如果 b 為空。 |
| IndexOutOfBoundsException | 如果 off 為負(fù)數(shù),len 為負(fù)數(shù),或者 len 大于 b.length - off |
skip
public long skip(long n) throws IOException
跳過(guò)并丟棄此輸入流中的 n 字節(jié)數(shù)據(jù)。 由于各種原因,skip 方法最終可能會(huì)跳過(guò)一些較小的字節(jié)數(shù),可能是 0。這可能是由許多條件中的任何一個(gè)引起的; 在跳過(guò) n 個(gè)字節(jié)之前到達(dá)文件末尾只是一種可能性。 返回實(shí)際跳過(guò)的字節(jié)數(shù)。 如果 n 為負(fù)數(shù),則 InputStream 類(lèi)的 skip 方法始終返回 0,并且不跳過(guò)任何字節(jié)。 子類(lèi)可能以不同方式處理負(fù)值。
此類(lèi)的 skip 方法創(chuàng)建一個(gè)字節(jié)數(shù)組,然后重復(fù)讀取它,直到讀取 n 個(gè)字節(jié)或到達(dá)流的末尾。 鼓勵(lì)子類(lèi)提供此方法的更有效實(shí)現(xiàn)。 例如,實(shí)現(xiàn)可能取決于尋找的能力。
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| n | 要跳過(guò)的字節(jié)數(shù)。 |
返回:
跳過(guò)的實(shí)際字節(jié)數(shù)。
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IOException | 如果流不支持查找,或者發(fā)生其他一些 I/O 錯(cuò)誤。 |
available
public int available() throws IOException
返回可以從此輸入流中讀取(或跳過(guò))的字節(jié)數(shù)的估計(jì)值,而不會(huì)被下一次調(diào)用此輸入流的方法阻塞。下一次調(diào)用可能是同一個(gè)線(xiàn)程或另一個(gè)線(xiàn)程。單次讀取或跳過(guò)這么多字節(jié)不會(huì)阻塞,但可能會(huì)讀取或跳過(guò)更少的字節(jié)。
請(qǐng)注意,雖然 InputStream 的某些實(shí)現(xiàn)會(huì)返回流中的字節(jié)總數(shù),但許多不會(huì)。使用此方法的返回值來(lái)分配旨在保存此流中所有數(shù)據(jù)的緩沖區(qū)是不正確的。
如果此輸入流已通過(guò)調(diào)用 close() 方法關(guān)閉,則此方法的子類(lèi)的實(shí)現(xiàn)可以選擇拋出 IOException。
InputStream 類(lèi)的可用方法總是返回 0。
這個(gè)方法應(yīng)該被子類(lèi)覆蓋。
返回:
可以在沒(méi)有阻塞的情況下從此輸入流中讀取(或跳過(guò))的字節(jié)數(shù)的估計(jì)值,或者當(dāng)它到達(dá)輸入流的末尾時(shí)為 0。
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IOException | 如果發(fā)生 I/O 錯(cuò)誤。 |
close
public void close() throws IOException
關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。
InputStream 的 close 方法什么也不做。
指定者:
在接口 AutoCloseable 中關(guān)閉
指定者:
在接口Closeable中關(guān)閉
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IOException | 如果發(fā)生 I/O 錯(cuò)誤。 |
mark
public void mark(int readlimit)
標(biāo)記此輸入流中的當(dāng)前位置。 對(duì) reset 方法的后續(xù)調(diào)用將此流重新定位到最后標(biāo)記的位置,以便后續(xù)讀取重新讀取相同的字節(jié)。
readlimit 參數(shù)告訴此輸入流允許在標(biāo)記位置無(wú)效之前讀取那么多字節(jié)。
mark 的一般約定是,如果方法 markSupported 返回 true,則流以某種方式記住調(diào)用 mark 之后讀取的所有字節(jié),并準(zhǔn)備好在調(diào)用方法 reset 時(shí)再次提供這些相同的字節(jié)。 但是,如果在調(diào)用 reset 之前從流中讀取了超過(guò) readlimit 個(gè)字節(jié),則流根本不需要記住任何數(shù)據(jù)。
標(biāo)記關(guān)閉的流不應(yīng)對(duì)流產(chǎn)生任何影響。
InputStream 的mark 方法什么都不做。
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| readlimit | 在標(biāo)記位置無(wú)效之前可以讀取的最大字節(jié)數(shù)。 |
reset
public void reset() throws IOException
將此流重新定位到最后一次在此輸入流上調(diào)用標(biāo)記方法時(shí)的位置。
重置的一般合約是:
- 如果方法 markSupported 返回 true,則:
- 如果自創(chuàng)建流以來(lái)尚未調(diào)用方法標(biāo)記,或者自上次調(diào)用標(biāo)記以來(lái)從流中讀取的字節(jié)數(shù)大于上次調(diào)用時(shí)標(biāo)記的參數(shù),則可能會(huì)引發(fā) IOException。
- 如果沒(méi)有拋出這樣的 IOException,則流將被重置為這樣的狀態(tài),即自最近一次調(diào)用 mark(或自文件開(kāi)始,如果尚未調(diào)用 mark)讀取的所有字節(jié)將被重新提供給后續(xù) read 方法的調(diào)用者,后跟任何字節(jié),否則在調(diào)用重置時(shí)將成為下一個(gè)輸入數(shù)據(jù)。
- 如果方法 markSupported 返回 false,則:
- 對(duì) reset 的調(diào)用可能會(huì)引發(fā) IOException。
- 如果未拋出 IOException,則流將重置為固定狀態(tài),該狀態(tài)取決于輸入流的特定類(lèi)型及其創(chuàng)建方式。 將提供給 read 方法的后續(xù)調(diào)用者的字節(jié)取決于輸入流的特定類(lèi)型。
InputStream 類(lèi)的方法 reset 除了拋出一個(gè) IOException 之外什么都不做。
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IOException | 如果此流尚未標(biāo)記或標(biāo)記已失效。 |
markSupported
public boolean markSupported()
測(cè)試此輸入流是否支持 mark 和 reset 方法。 是否支持標(biāo)記和重置是特定輸入流實(shí)例的不變屬性。 InputStream 的 markSupported 方法返回 false。
返回:
如果此流實(shí)例支持 mark 和 reset 方法,則為 true; 否則為 false。
本文標(biāo)題:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSInputStream
URL網(wǎng)址:http://m.fisionsoft.com.cn/article/djgsppd.html


咨詢(xún)
建站咨詢(xún)
