該類允許應(yīng)用創(chuàng)建一個輸入流,從其中讀取字節(jié)數(shù)組提供的字節(jié)。
應(yīng)用也能從使用一個
StringBufferInputStream
的某字符串中讀取字節(jié)。
類 java.io.ByteArrayInputStream
類 java.io.ByteArrayInputStream
java.lang.Object
|
+----java.io.InputStream
|
+----java.io.ByteArrayInputStream
- public class ByteArrayInputStream
- extends InputStream
- 出現(xiàn)于:
- JDK1.0
- 參見:
- StringBufferInputStream
變量索引
- buf
- 包含數(shù)據(jù)的字節(jié)數(shù)組。
- count
- 比輸入緩沖區(qū)中最后有效字符大一的下標。
- mark
- 流中的當前標記位置。
- pos
- 從輸入流緩沖中讀入的下一個字符的下標。
構(gòu)造子索引
- ByteArrayInputStream(byte[])
- 創(chuàng)建一個新字節(jié)數(shù)組輸入流,它從指定字節(jié)數(shù)組中讀取數(shù)據(jù)。
- ByteArrayInputStream(byte[], int, int)
- 創(chuàng)建一個新字節(jié)數(shù)組輸入流,它從指定字節(jié)數(shù)組中讀取數(shù)據(jù)。
方法索引
- available()
- 返回從該輸入流中可無阻塞讀取的字節(jié)數(shù)。
- mark(int)
- 設(shè)置流中的當前標記位置。
- markSupported()
- 若 ByteArrayInputStream 支持標記/復(fù)位,則測試。
- read()
- 從該輸入流中讀取下一個字節(jié)數(shù)據(jù)。
- read(byte[], int, int)
- 將該輸入流中
len
個字節(jié)數(shù)據(jù)讀入某個字節(jié)數(shù)組中。
- reset()
- 將緩沖區(qū)重置為標記位置。
- skip(long)
- 跳過輸入流中
n
個字節(jié)數(shù)據(jù)。
變量
buf
protected byte buf[]
- 包含數(shù)據(jù)的字節(jié)數(shù)組。
pos
protected int pos
- 從輸入流緩沖區(qū)中讀入的下一個字符的下標。
mark
protected int mark
- 流中的當前標記位置。構(gòu)造時 ByteArrayInputStreams 的缺省標記在零位置。用
mark()
方法可將其標記在另一個位置。
reset()
方法將當前緩沖區(qū)位置設(shè)置為該點。
count
protected int count
- 比輸入緩沖區(qū)中最后有效字符大一的下標。
構(gòu)造子
ByteArrayInputStream
public ByteArrayInputStream(byte buf[])
- 創(chuàng)建一個新字節(jié)數(shù)組輸入流,它從指定字節(jié)數(shù)組中讀取數(shù)據(jù)。該字節(jié)數(shù)組未被復(fù)制。
- 參數(shù):
- buf - 輸入緩沖區(qū)
ByteArrayInputStream
public ByteArrayInputStream(byte buf[],
int offset,
int length)
- 創(chuàng)建一個新字節(jié)數(shù)組輸入流,它從指定字節(jié)數(shù)組中讀取數(shù)據(jù)。達到
length
字符時將從字節(jié)數(shù)組的指示偏移量開始讀取。
該字節(jié)數(shù)組未被復(fù)制。
- 參數(shù):
- buf - 輸入緩沖區(qū)
- offset - 緩沖區(qū)中將讀取的第一個字節(jié)的偏移量
- len - 從緩沖區(qū)中待讀取的最大字節(jié)數(shù)
方法
read
public synchronized int read()
- 從該輸入流中讀取下一個字節(jié)數(shù)據(jù)。返回的字節(jié)值是
0
到 255
范圍內(nèi)的一個 int
數(shù)。如果已讀到流尾,無可讀的字節(jié)時,返回 -1
。
不能阻塞 StringBufferInputStream
的 read
方法。
- 返回值:
- 下一個數(shù)據(jù)字節(jié),若已讀到流尾,則為
-1
。
- 覆蓋:
- 類
InputStream 中的 read 。
read
public synchronized int read(byte b[],
int off,
int len)
- 將該輸入流中
len
個字節(jié)數(shù)據(jù)讀入某個字節(jié)數(shù)組中。不能阻塞該方法。
- 參數(shù):
- b - 讀取數(shù)據(jù)的緩沖區(qū)。
- off - 讀取數(shù)據(jù)的起始偏移。
- len - 讀取的最大字節(jié)數(shù)。
- 返回值:
- 讀取緩存區(qū)的整個字節(jié)數(shù),若讀到流尾且無數(shù)據(jù)可讀則為
-1
。
- 覆蓋:
- 類 InputStream
中的
read 。
skip
public synchronized long skip(long n)
- 跳過輸入流中
n
個字節(jié)數(shù)據(jù)。 若已讀到輸入流尾,則可能會跳過少數(shù)數(shù)據(jù)。
- 參數(shù):
- n - 跳過的字節(jié)數(shù)。
- 返回值:
- 實際跳過的字節(jié)數(shù)。
- 覆蓋:
- 類 InputStream 中的 skip 。
available
public synchronized int available()
- 返回可從該輸入流中無阻塞讀取的字節(jié)數(shù)。
ByteArrayInputStream
的可用
方法的返回值
count?- pos
,
它是從輸入緩沖區(qū)待讀的字節(jié)數(shù)。
- 返回值:
- 可從輸入流中無阻塞讀取的字節(jié)數(shù)。
- 覆蓋:
- 類
InputStream 中的
available 。
markSupported
public boolean markSupported()
- 若 ByteArrayInputStream 支持標記/重置,則測試。
- 覆蓋:
- 類 InputStream
中的 markSupported 。
mark
public void mark(int markpos)
- 設(shè)置流中的當前標記位置。構(gòu)造時 ByteArrayInputStreams 缺省標記在零位置。用該方法可將其標記在另一個位置。
- 覆蓋:
- 類
InputStream 中的
mark 。
reset
public synchronized void reset()
- 將緩沖區(qū)重置為標記的位置。除非標記了另一個位置,否則該標記位置即為開始位置。
- 覆蓋:
- 類
InputStream 中的 reset 。