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 错误。

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息