新聞中心
BufferedInputStream

目前成都創(chuàng)新互聯(lián)已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、封丘網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
java.lang.Object
|---java.io.InputStream
|---|---java.io.FilterInputStream
|---|---|---java.io.BufferedInputStream
public class BufferedInputStream
extends FilterInputStreamBufferedInputStream 向另一個(gè)輸入流添加了功能,即緩沖輸入并支持標(biāo)記和重置方法的能力。 創(chuàng)建 BufferedInputStream 時(shí),會(huì)創(chuàng)建一個(gè)內(nèi)部緩沖區(qū)數(shù)組。 當(dāng)流中的字節(jié)被讀取或跳過(guò)時(shí),內(nèi)部緩沖區(qū)會(huì)根據(jù)需要從包含的輸入流中重新填充,一次很多字節(jié)。 標(biāo)記操作會(huì)記住輸入流中的一個(gè)點(diǎn),并且重置操作會(huì)導(dǎo)致在從包含的輸入流中獲取新字節(jié)之前重新讀取自最近一次標(biāo)記操作以來(lái)讀取的所有字節(jié)。
Since:
JDK1.0
字段摘要
| 修飾符和類(lèi)型 | 字段 | 描述 |
|---|---|---|
| protected byte[] | buf | 存儲(chǔ)數(shù)據(jù)的內(nèi)部緩沖區(qū)數(shù)組。 |
| protected int | count | 比緩沖區(qū)中最后一個(gè)有效字節(jié)的索引大一的索引。 |
| protected int | marklimit | 在隨后調(diào)用 reset 方法失敗之前調(diào)用 mark 方法后允許的最大預(yù)讀。 |
| protected int | markpos | 調(diào)用最后一個(gè)標(biāo)記方法時(shí) pos 字段的值。 |
| protected int | pos | 緩沖區(qū)中的當(dāng)前位置。 |
| 從類(lèi) java.io.FilterInputStream 繼承的字段 |
|---|
| in |
構(gòu)造函數(shù)摘要
| 構(gòu)造函數(shù) | 描述 |
|---|---|
| BufferedInputStream(InputStream in) | 創(chuàng)建一個(gè) BufferedInputStream 并保存其參數(shù),即輸入流,以供以后使用。 |
| BufferedInputStream(InputStream in, int size) | 創(chuàng)建具有指定緩沖區(qū)大小的 BufferedInputStream,并保存其參數(shù),即輸入流,以供以后使用。 |
方法總結(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) | 參見(jiàn) InputStream 的 mark 方法的通用約定。 |
| boolean | markSupported() | 測(cè)試此輸入流是否支持 mark 和 reset 方法。 |
| int | read() | 參見(jiàn) InputStream 的 read 方法的通用約定。 |
| int | read(byte[] b, int off, int len) | 從此字節(jié)輸入流中將字節(jié)讀取到指定的字節(jié)數(shù)組中,從給定的偏移量開(kāi)始。 |
| void | reset() | 參見(jiàn) InputStream 的 reset 方法的通用約定。 |
| long | skip(long n) | 參見(jiàn) InputStream 的 skip 方法的通用約定。 |
| 從類(lèi) java.io.FilterInputStream 繼承的方法 |
|---|
| read |
| 從類(lèi) java.lang.Object 繼承的方法 |
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段詳細(xì)信息
buf
protected volatile byte[] buf
存儲(chǔ)數(shù)據(jù)的內(nèi)部緩沖區(qū)數(shù)組。 必要時(shí),它可以被另一個(gè)不同大小的數(shù)組替換。
count
protected int count
比緩沖區(qū)中最后一個(gè)有效字節(jié)的索引大一的索引。 該值始終在 0 到 buf.length 的范圍內(nèi); 元素 buf[0] 到 buf[count-1] 包含從底層輸入流獲得的緩沖輸入數(shù)據(jù)。
marklimit
protected int marklimit
在隨后調(diào)用 reset 方法失敗之前調(diào)用 mark 方法后允許的最大預(yù)讀。 每當(dāng) pos 和 markpos 之間的差值超過(guò) marklimit 時(shí),可以通過(guò)將 markpos 設(shè)置為 -1 來(lái)刪除該標(biāo)記。
markpos
protected int markpos
調(diào)用最后一個(gè)標(biāo)記方法時(shí) pos 字段的值。
該值始終在 -1 到 pos 的范圍內(nèi)。 如果輸入流中沒(méi)有標(biāo)記位置,則該字段為-1。 如果輸入流中有標(biāo)記位置,則 buf[markpos] 是復(fù)位操作后作為輸入提供的第一個(gè)字節(jié)。 如果 markpos 不是 -1,則從位置 buf[markpos] 到 buf[pos-1] 的所有字節(jié)都必須保留在緩沖區(qū)數(shù)組中(盡管它們可以移動(dòng)到緩沖區(qū)數(shù)組中的另一個(gè)位置,并適當(dāng)調(diào)整 計(jì)數(shù)、位置和標(biāo)記位置); 除非且直到 pos 和 markpos 之間的差異超過(guò) marklimit,否則它們可能不會(huì)被丟棄。
pos
protected int pos
緩沖區(qū)中的當(dāng)前位置。 這是要從 buf 數(shù)組中讀取的下一個(gè)字符的索引。
該值始終在 0 到 count 的范圍內(nèi)。 如果它小于 count,則 buf[pos] 是作為輸入提供的下一個(gè)字節(jié); 如果它等于 count,那么下一次讀取或跳過(guò)操作將需要從包含的輸入流中讀取更多字節(jié)。
構(gòu)造函數(shù)詳細(xì)信息
BufferedInputStream
public BufferedInputStream(InputStream in)
創(chuàng)建一個(gè) BufferedInputStream 并保存其參數(shù),即輸入流,以供以后使用。 創(chuàng)建一個(gè)內(nèi)部緩沖區(qū)數(shù)組并將其存儲(chǔ)在 buf 中。
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| in | 底層輸入流。 |
BufferedInputStream
public BufferedInputStream(InputStream in, int size)
創(chuàng)建具有指定緩沖區(qū)大小的 BufferedInputStream,并保存其參數(shù),即輸入流,以供以后使用。 創(chuàng)建一個(gè)長(zhǎng)度大小的內(nèi)部緩沖區(qū)數(shù)組并將其存儲(chǔ)在 buf 中。
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| in | 底層輸入流。 |
| size | 緩沖區(qū)大小。 |
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IllegalArgumentException | 如果 size <= 0. |
方法詳情
read
public int read() throws IOException
參見(jiàn) InputStream 的 read 方法的通用約定。
覆蓋:
讀入類(lèi) FilterInputStream
返回:
數(shù)據(jù)的下一個(gè)字節(jié),如果到達(dá)流的末尾,則為 -1。
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IOException | 如果此輸入流已通過(guò)調(diào)用其 close() 方法關(guān)閉,或者發(fā)生 I/O 錯(cuò)誤。 |
read
public int read(byte[] b, int off, int len) throws IOException
從此字節(jié)輸入流中將字節(jié)讀取到指定的字節(jié)數(shù)組中,從給定的偏移量開(kāi)始。
該方法實(shí)現(xiàn)了 InputStream 類(lèi)對(duì)應(yīng)的 [InputStream#read(byte], int, int) 方法的通用約定。 作為額外的便利,它嘗試通過(guò)重復(fù)調(diào)用底層流的讀取方法來(lái)讀取盡可能多的字節(jié)。 此迭代讀取將繼續(xù),直到滿(mǎn)足以下條件之一:
- 已讀取指定數(shù)量的字節(jié),
- 底層流的read方法返回-1,表示文件結(jié)束,或者
- 底層流的可用方法返回零,表示進(jìn)一步的輸入請(qǐng)求將阻塞。
如果對(duì)底層流的第一次讀取返回 -1 以指示文件結(jié)束,則此方法返回 -1。 否則,此方法返回實(shí)際讀取的字節(jié)數(shù)。
鼓勵(lì)但不要求此類(lèi)的子類(lèi)嘗試以相同方式讀取盡可能多的字節(jié)。
覆蓋:
讀入類(lèi) FilterInputStream
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| b | 目標(biāo)緩沖區(qū)。 |
| off | 開(kāi)始存儲(chǔ)字節(jié)的偏移量。 |
| len | 要讀取的最大字節(jié)數(shù)。 |
返回:
讀取的字節(jié)數(shù),如果已到達(dá)流的末尾,則為 -1。
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IOException | 如果此輸入流已通過(guò)調(diào)用其 close() 方法關(guān)閉,或者發(fā)生 I/O 錯(cuò)誤。 |
skip
public long skip(long n) throws IOException
參見(jiàn) InputStream 的 skip 方法的通用約定。
覆蓋:
跳過(guò)類(lèi) FilterInputStream
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| n | 要跳過(guò)的字節(jié)數(shù)。 |
返回:
跳過(guò)的實(shí)際字節(jié)數(shù)。
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IOException | 如果流不支持查找,或者此輸入流已通過(guò)調(diào)用其 close() 方法關(guān)閉,或者發(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ū)中要讀取的剩余字節(jié)數(shù) (count - pos) 和調(diào)用 in.available() 的結(jié)果之和。
覆蓋:
在類(lèi) FilterInputStream 中可用
返回:
估計(jì)可以從該輸入流中讀?。ɑ蛱^(guò))而不阻塞的字節(jié)數(shù)。
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IOException | 如果此輸入流已通過(guò)調(diào)用其 close() 方法關(guān)閉,或者發(fā)生 I/O 錯(cuò)誤。 |
mark
public void mark(int readlimit)
參見(jiàn) InputStream 的 mark 方法的通用約定。
覆蓋:
在類(lèi) FilterInputStream 中標(biāo)記
參數(shù):
| 參數(shù)名稱(chēng) | 參數(shù)描述 |
|---|---|
| readlimit | 在標(biāo)記位置無(wú)效之前可以讀取的最大字節(jié)數(shù)。 |
reset
public void reset() throws IOException
參見(jiàn) InputStream 的 reset 方法的通用約定。
如果 markpos 為 -1(未設(shè)置標(biāo)記或標(biāo)記已失效),則拋出 IOException。 否則,將 pos 設(shè)置為等于 markpos。
覆蓋:
在類(lèi) FilterInputStream 中重置
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IOException | 如果此流尚未被標(biāo)記,或者如果標(biāo)記已失效,或者流已通過(guò)調(diào)用其 close() 方法關(guān)閉,或者發(fā)生 I/O 錯(cuò)誤。 |
markSupported
public boolean markSupported()
測(cè)試此輸入流是否支持 mark 和 reset 方法。 BufferedInputStream 的 markSupported 方法返回 true。
覆蓋:
類(lèi) FilterInputStream 中的 markSupported
返回:
一個(gè)布爾值,指示此流類(lèi)型是否支持標(biāo)記和重置方法。
close
public void close() throws IOException
關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。 關(guān)閉流后,進(jìn)一步的 read()、available()、reset() 或 skip() 調(diào)用將引發(fā) IOException。 關(guān)閉以前關(guān)閉的流沒(méi)有效果。
指定者:
在接口 AutoCloseable 中關(guān)閉
指定者:
在接口Closeable中關(guān)閉
覆蓋:
在類(lèi) FilterInputStream 中關(guān)閉
Throws:
| Throw名稱(chēng) | Throw描述 |
|---|---|
| IOException | 如果發(fā)生 I/O 錯(cuò)誤。 |
分享標(biāo)題:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSBufferedInputStream
標(biāo)題鏈接:http://www.5511xx.com/article/coigjch.html


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