- java.lang.Object
 -  
      
- java.io.InputStream
 -  
        
- java.io.ByteArrayInputStream
 
 
 
-  
       
- 实现的所有接口
 -  
         
Closeable,AutoCloseable 
public class ByteArrayInputStream extends InputStream
AByteArrayInputStream包含一个内部缓冲区,其中包含可从流中读取的字节。 内部计数器跟踪read方法提供的下一个字节。关闭
ByteArrayInputStream无效。 在关闭流之后可以调用此类中的方法,而不生成IOException。- 从以下版本开始:
 - 1.0
 - 另请参见:
 -  
         
StringBufferInputStream 
 
-  
        
       
-  
             
构造方法摘要
构造方法 构造器 描述 ByteArrayInputStream(byte[] buf)创建一个ByteArrayInputStream以便它使用buf作为其缓冲区数组。ByteArrayInputStream(byte[] buf, int offset, int length)创建ByteArrayInputStream使用buf作为其缓冲器阵列。 
-  
             
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 intavailable()返回可从此输入流中读取(或跳过)的剩余字节数。voidclose()关闭ByteArrayInputStream无效。voidmark(int readAheadLimit)设置流中当前标记的位置。booleanmarkSupported()测试此InputStream支持标记/重置。intread()从此输入流中读取下一个数据字节。intread(byte[] b, int off, int len)从该输入流将最多len字节的数据读入一个字节数组。voidreset()将缓冲区重置为标记位置。longskip(long n)从此输入流中跳过n个字节的输入。-  
               
声明方法的类 java.io.InputStream
nullInputStream, read, readAllBytes, readNBytes, readNBytes, transferTo 
 -  
               
 
 -  
             
 
-  
        
       
-  
             
字段详细信息
-  
buf
protected byte[] buf
由流的创建者提供的字节数组。 元素buf[0]到buf[count-1]是唯一可以从流中读取的字节; elementbuf[pos]是要读取的下一个字节。 
-  
pos
protected int pos
从输入流缓冲区读取的下一个字符的索引。 此值应始终为非负值且不大于值count。 要从输入流缓冲区读取的下一个字节是buf[pos]。 
-  
mark
protected int mark
流中当前标记的位置。 默认情况下,ByteArrayInputStream对象在构造时默认标记为零。 它们可以通过mark()方法标记在缓冲区内的另一个位置。 通过reset()方法将当前缓冲区位置设置为此点。如果未设置标记,则mark的值是传递给构造函数的偏移量(如果未提供偏移量,则为0)。
- 从以下版本开始:
 - 1.1
 
 
-  
count
protected int count
索引1大于输入流缓冲区中的最后一个有效字符。 此值应始终为非负且不大于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()
从此输入流中读取下一个数据字节。 值字节返回int,范围为0至255。 如果由于到达流末尾没有可用字节,则返回值-1。这种
read方法无法阻止。- Specified by:
 -  
              
read在课堂上InputStream - 结果
 - 
               数据的下一个字节,如果已到达流的末尾, 
              
-1。 
 
-  
read
public int read(byte[] b, int off, int len)从此输入流将最多len个字节的数据读入一个字节数组。 如果pos等于count,则返回-1以指示文件结束。 否则,读取的字节数k等于len和count-pos的较小者。 如果k为正,则字节buf[pos]通过buf[pos+k-1]被复制到b[off]通过b[off+k-1]由执行的方式System.arraycopy。 值k添加到pos并返回k。这种
read方法无法阻止。- 重写:
 -  
              
read类InputStream - 参数
 -  
              
b- 读取数据的缓冲区。 -  
              
off- 目标阵列b的起始偏移量 -  
              
len- 读取的最大字节数。 - 结果
 - 
               读入缓冲区的总字节数,如果由于已到达流末尾而没有更多数据, 
              
-1。 - 异常
 -  
              
NullPointerException- 如果b是null。 -  
              
IndexOutOfBoundsException- 如果off为负数,len为负数,或len为大于b.length - off - 另请参见:
 -  
              
InputStream.read() 
 
-  
skip
public long skip(long n)
从此输入流中跳过n字节的输入。 如果到达输入流的末尾,则可以跳过更少的字节。 要跳过的实际字节数k等于n和count-pos的较小count-pos。 值k添加到pos并返回k。- 重写:
 -  
              
skip类InputStream - 参数
 -  
              
n- 要跳过的字节数。 - 结果
 - 跳过的实际字节数。
 
 
-  
available
public int available()
返回可从此输入流中读取(或跳过)的剩余字节数。返回的值是
count - pos,这是从输入缓冲区中读取的剩余字节数。- 重写:
 -  
              
available在类InputStream - 结果
 - 可以从此输入流中无阻塞地读取(或跳过)的剩余字节数。
 
 
-  
markSupported
public boolean markSupported()
测试此InputStream支持标记/重置。markSupported方法ByteArrayInputStream始终返回true。- 重写:
 -  
              
markSupported在类InputStream - 结果
 -  
              
true如果此流实例支持mark和reset方法; 否则为false。 - 从以下版本开始:
 - 1.1
 - 另请参见:
 -  
              
InputStream.mark(int),InputStream.reset() 
 
-  
mark
public void mark(int readAheadLimit)
设置流中当前标记的位置。 默认情况下,ByteArrayInputStream对象在构造时默认标记为零。 它们可以通过这种方法标记在缓冲区内的另一个位置。如果未设置标记,则标记的值是传递给构造函数的偏移量(如果未提供偏移量,则为0)。
注意:
readAheadLimit没有任何意义。- 重写:
 -  
              
mark在类InputStream - 参数
 -  
              
readAheadLimit- 标记位置变为无效之前可读取的最大字节数限制。 - 从以下版本开始:
 - 1.1
 - 另请参见:
 -  
              
InputStream.reset() 
 
-  
reset
public void reset()
将缓冲区重置为标记位置。 除非标记了另一个位置或在构造函数中指定了偏移量,否则标记的位置为0。- 重写:
 -  
              
reset在类InputStream - 另请参见:
 -  
              
InputStream.mark(int),IOException 
 
-  
close
public void close() throws IOException关闭ByteArrayInputStream无效。 在关闭流之后可以调用此类中的方法,而不生成IOException。- Specified by:
 -  
              
closein interfaceAutoCloseable - Specified by:
 -  
              
closein interfaceCloseable - 重写:
 -  
              
close,类InputStream - 异常
 -  
              
IOException- 如果发生I / O错误。 
 
 -  
 
 -