java.io java
類 ByteArrayInputStream數組
java.lang.Object測試
┗java.io.InputStream對象
┗java.io.ByteArrayInputStream繼承
全部已實現的接口: 索引
Closeable接口
public class ByteArrayInputStream extends InputStreamip
ByteArrayInputStream 包含一個內部緩衝區,該緩衝區包含從流中讀取的字節。內部計數器跟蹤 read 方法要提供的下一個字節。get
關閉 ByteArrayInputStream 無效。此類中的方法在關閉此流後仍可被調用,而不會產生任何 IOException。hash
字段摘要
protected byte[] buf
由該流的建立者提供的 byte 數組。
protected int count
比輸入流緩衝區中最後一個有效字符的索引大一的索引。
protected int mark
流中當前的標記位置。
protected int pos
要從輸入流緩衝區中讀取的下一個字符的索引。
構造方法摘要
ByteArrayInputStream(byte[] buf)
建立一個 ByteArrayInputStream,使用 buf 做爲其緩衝區數組。
ByteArrayInputStream(byte[] buf, int offset, int length)
建立 ByteArrayInputStream,使用 buf 做爲其緩衝區數組。
方法摘要
int available()
返回可今後輸入流讀取(或跳過)的剩餘字節數。
void close()
關閉 ByteArrayInputStream 無效。
void mark(int readAheadLimit)
設置流中的當前標記位置。
boolean markSupported()
測試此 InputStream 是否支持 mark/reset。
int read()
今後輸入流中讀取下一個數據字節。
int read(byte[] b, int off, int len)
將最多 len 個數據字節今後輸入流讀入 byte 數組。
void reset()
將緩衝區的位置重置爲標記位置。
long skip(long n)
今後輸入流中跳過 n 個輸入字節。
從類 java.io.InputStream 繼承的方法
read
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
字段詳細信息
buf
protected byte[] buf
由該流的建立者提供的 byte 數組。元素 buf[0] 到 buf[count-1] 是隻能從流中讀取的字節;元素 buf[pos] 是要讀取的下一個字節。
pos
protected int pos
要從輸入流緩衝區中讀取的下一個字符的索引。此值應該始終是非負數,而且不該大於 count 值。從輸入流緩衝區中讀取的下一個字節是 buf[pos]。
mark
protected int mark
流中當前的標記位置。構造時默認將 ByteArrayInputStream 對象標記在位置零處。經過 mark() 方法可將其標記在緩衝區內的另外一個位置處。經過 reset() 方法將當前緩衝區位置設置爲此點。
若是還沒有設置標記,則標記值是傳遞給構造方法的偏移量(若是未提供偏移量,則標記值爲 0)。
count
protected int count
比輸入流緩衝區中最後一個有效字符的索引大一的索引。此值應該始終是非負數,而且不該大於 buf 的長度。它比 buf 中最後一個可從輸入流緩衝區中讀取的字節位置大一。
構造方法詳細信息
ByteArrayInputStream
public ByteArrayInputStream(byte[] buf)
建立一個 ByteArrayInputStream,使用 buf 做爲其緩衝區數組。該緩衝區數組不是複製獲得的。pos 的初始值是 0,count 的初始值是 buf 的長度。
參數:
buf - 輸入緩衝區。
ByteArrayInputStream
public ByteArrayInputStream(byte[] buf, int offset, int length)
建立 ByteArrayInputStream,使用 buf 做爲其緩衝區數組。pos 的初始值是 offset,count 的初始值是 offset+length 和 buf.length 中的最小值。該緩衝區數組不是複製獲得的。將該緩衝區的標記設置爲指定的偏移量。
參數:
buf - 輸入緩衝區。
offset - 緩衝區中要讀取的第一個字節的偏移量。
length - 從緩衝區中讀取的最大字節數。
方法詳細信息
read
public int read()
今後輸入流中讀取下一個數據字節。返回一個 0 到 255 範圍內的 int 字節值。若是由於到達流末尾而沒有可用的字節,則返回值 -1。
此 read 方法不會阻塞。
指定者:
類 InputStream 中的 read
返回:
下一個數據字節,若是到達流末尾,則返回 -1。
read
public int read(byte[] b, int off, int len)
將最多 len 個數據字節今後輸入流讀入 byte 數組。若是 pos 等於 count,則返回 -1 指示文件結束。不然,讀取的字節數 k 等於 len 和 count-pos 中的較小者。若是 k 是正數,則以 System.arraycopy 執行的方式將 buf[pos] 到 buf[pos+k-1] 的字節複製到 b[off] 到 b[off+k-1] 中。將值 k 與 pos 相加並返回 k。
此 read 方法不會阻塞。
覆蓋:
類 InputStream 中的 read
參數:
b - 存儲讀入數據的緩衝區。
off - 目標數組 b 的起始偏移量。
len - 讀取的最大字節數。
返回:
讀入緩衝區的總字節數,若是因爲已到達流末尾而再也不有數據,則返回 -1。
拋出:
NullPointerException - 若是 b 爲 null。
IndexOutOfBoundsException - 若是 off 爲負,len 爲負,或者 len 大於 b.length - off
skip
public long skip(long n)
今後輸入流中跳過 n 個輸入字節。若是已到達輸入流末尾,則可能會跳過較少的字節。實際跳過的字節數 k 等於 n 和 count-pos 中的較小者。將值 k 與 pos 相加並返回 k。
覆蓋:
類 InputStream 中的 skip
參數:
n - 要跳過的字節數。
返回:
跳過的實際字節數。
available
public int available()返回可今後輸入流讀取(或跳過)的剩餘字節數。
返回值是 count - pos,它是要從輸入緩衝區中讀取的剩餘字節數。
覆蓋:
類 InputStream 中的 available
返回:
不受阻塞地今後輸入流讀取(或跳過)的剩餘字節數。
markSupported
public boolean markSupported()
測試此 InputStream 是否支持 mark/reset。ByteArrayInputStream 的 markSupported 方法始終返回 true。
覆蓋:
類 InputStream 中的 markSupported
返回:
若是此輸入流實例支持 mark 和 reset 方法,則返回 true;不然返回 false。
mark
public void mark(int readAheadLimit)
設置流中的當前標記位置。構造時默認將 ByteArrayInputStream 對象標記在位置零處。經過此方法可將其標記在緩衝區內的另外一個位置處。
若是還沒有設置標記,則標記值是傳遞給構造方法的偏移量(若是未提供偏移量,則標記值爲 0)。
注:readAheadLimit 對於此類沒有意義。
覆蓋:
類 InputStream 中的 mark
參數:
readAheadLimit - 在標記位置失效前能夠讀取字節的最大限制。
reset
public void reset()將緩衝區的位置重置爲標記位置。除非已標記了另外一個位置,或者在構造方法中指定了一個偏移量,不然該標記位置是 0。
覆蓋:
類 InputStream 中的 reset
close
public void close() throws IOException
關閉 ByteArrayInputStream 無效。此類中的方法在關閉此流後仍可被調用,而不會產生任何 IOException。
指定者:
接口 Closeable 中的 close
覆蓋:
類 InputStream 中的 close
拋出:
IOException - 若是發生 I/O 錯誤。