IO-ByteArrayInputStream

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 錯誤。

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息