| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjava.io.InputStream
java.io.FilterInputStream
java.io.PushbackInputStream
public class PushbackInputStream
      PushbackInputStream 为另一个输入流添加性能,即“推回 (push back)”或“取消读取 (unread)”一个字节的能力。在代码片段可以很方便地读取由特定字节值分隔的不定数量的数据字节时,这很有用;在读取终止字节后,代码片段可以“取消读取”该字节,这样,输入流上的下一个读取操作将会重新读取被推回的字节。例如,表示构成标识符字符的字节可能由表示操作符字符的字节终止;用于读取一个标识符的方法可以读取到遇到操作符为止,然后将该操作符推回以进行重读。 
| 字段摘要 | |
|---|---|
| protected  byte[] | buf推回缓冲区。 | 
| protected  int | pos推回缓冲区中的位置,将读取该位置的下一个字节。 | 
| 从类 java.io.FilterInputStream 继承的字段 | 
|---|
| in | 
| 构造方法摘要 | |
|---|---|
| PushbackInputStream(InputStream in)创建 PushbackInputStream并保存其参数(即输入流in),以供将来使用。 | |
| PushbackInputStream(InputStream in, int size)使用指定 size的推回缓冲区创建PushbackInputStream,并保存其参数(即输入流in),以供将来使用。 | |
| 方法摘要 | |
|---|---|
|  int | available()返回可以不受下一次调用此输入流的方法阻塞地从此输入流读取(或跳过)的估计字节数。 | 
|  void | close()关闭此输入流并释放与该流关联的所有系统资源。 | 
|  void | mark(int readlimit)在此输入流中标记当前的位置。 | 
|  boolean | markSupported()测试此输入流是否支持 mark和reset方法,此输入流不支持这两个方法。 | 
|  int | read()从此输入流中读取下一个数据字节。 | 
|  int | read(byte[] b, int off, int len)从此输入流将最多 len个数据字节读入 byte 数组。 | 
|  void | reset()将此流重新定位到最后一次对此输入流调用 mark方法时的位置。 | 
|  long | skip(long n)从此输入流中跳过并丢弃 n个数据字节。 | 
|  void | unread(byte[] b)推回一个 byte 数组:将其复制到推回缓冲区之前。 | 
|  void | unread(byte[] b, int off, int len)推回 byte 数组的某一部分:将其复制到推回缓冲区之前。 | 
|  void | unread(int b)推回一个字节:将其复制到推回缓冲区之前。 | 
| 从类 java.io.FilterInputStream 继承的方法 | 
|---|
| read | 
| 从类 java.lang.Object 继承的方法 | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| 字段详细信息 | 
|---|
protected byte[] buf
protected int pos
pos 等于 
    buf.length;缓冲区已满时,
    pos 等于 0。 
    
| 构造方法详细信息 | 
|---|
public PushbackInputStream(InputStream in,
                           int size) 
  size 的推回缓冲区创建 
    PushbackInputStream,并保存其参数(即输入流 
    in),以供将来使用。最初,不存在推回字节(字段 
    pushBack 被初始化为 
    -1)。 
    
in - 从中读取字节的输入流。
     size - 推回缓冲区的大小。 
     IllegalArgumentException - 如果 size <= 0
     public PushbackInputStream(InputStream in)
PushbackInputStream 并保存其参数(即输入流 
    in),以供将来使用。最初,不存在推回字节(字段 
    pushBack 被初始化为 
    -1)。 
    
in - 从中读取字节的输入流。
     | 方法详细信息 | 
|---|
public int read()
         throws IOException 
  int 形式返回 
    0 到 
    255 范围内字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 
    -1。在输入数据可用、检测到流末尾或者抛出异常之前,此方法一直阻塞。 
     此方法返回最近一次推回的字节(如果有),否则将调用其底层输入流的 read 方法,并返回该方法返回的任何值。 
FilterInputStream 中的 
      read
     -1。 
     IOException - 如果已调用其 
      close() 方法关闭此输入流,或者发生 I/O 错误。
     InputStream.read()
     
public int read(byte[] b,
                int off,
                int len)
         throws IOException 
  len 个数据字节读入 byte 数组。此方法首先读取所有推回字节;然后,如果读取的字节数少于 
    len 个字节,那么它将从底层输入流中读取字节。如果 
    len 不为 0,那么在至少 1 个输入字节可用之前,该方法将一直阻塞;否则,不读取任何字节并返回 
    0。 
    
FilterInputStream 中的 
      read
     b - 读入数据的缓冲区。
     off - 目标数组 
      b 中的初始偏移量。
     len - 读取的最大字节数。 
     -1。 
     NullPointerException - 如果 
      b 为 
      null。 
     IndexOutOfBoundsException - 如果 
      off 为负,
      len 为负,或者 
      len 大于 
      b.length - off 
     IOException - 如果已调用其 
      close() 方法关闭此输入流,或者发生 I/O 错误。
     InputStream.read(byte[], int, int)
     
public void unread(int b)
            throws IOException 
  (byte)b。 
    
b - 要推回其低位字节的 
      int 值。 
     IOException - 如果推回缓冲区中没有足够的空间来存储字节,或者已调用其 
      close() 方法关闭此输入流。
     
public void unread(byte[] b,
                   int off,
                   int len)
            throws IOException 
  b[off],该字节之后的字节的值将为 
    b[off+1],依此类推。 
    
b - 要推回的 byte 数组。
     off - 数据的初始偏移量。
     len - 要推回的字节数。 
     IOException - 如果推回缓冲区中没有足够的空间来存储指定字节数,或者已调用其 
      close() 方法关闭此输入流。
     
public void unread(byte[] b)
            throws IOException 
  b[0],该字节之后的字节的值将为 
    b[1],依此类推。 
    
b - 要推回的 byte 数组 
     IOException - 如果推回缓冲区中没有足够的空间来存储指定字节数,或者已调用其 
      close() 方法关闭此输入流。
     
public int available()
              throws IOException 
   该方法返回已被推回的字节数与 available 返回的值之和。 
FilterInputStream 中的 
      available
     IOException - 如果已调用其 
      close() 方法关闭此输入流,或者发生 I/O 错误。
     FilterInputStream.in, 
      InputStream.available()
     
public long skip(long n)
          throws IOException 
  n 个数据字节。由于多种原因,
    skip 方法结束时跳过的字节数可能少于该数,也可能为 0。如果 
    n 为负,则不跳过任何字节。 
     PushbackInputStream 的 skip 方法首先跳过推回缓冲区中的字节(如果有)。如果需要跳过更多字节,那么它将调用底层输入流的 skip 方法。返回跳过的实际字节数。 
FilterInputStream 中的 
      skip
     n - 要跳过的字节数。 
     IOException - 如果流不支持查找操作,或者已调用其 
      close() 方法关闭,或者发生 I/O 错误。
     FilterInputStream.in, 
      InputStream.skip(long n)
     public boolean markSupported()
mark 和 
    reset 方法,此输入流不支持这两个方法。 
    
FilterInputStream 中的 
      markSupported
     false,因为此类不支持 
      mark 和 
      reset 方法。
     InputStream.mark(int), 
      InputStream.reset()
     public void mark(int readlimit)
 PushbackInputStream 的 mark 方法不执行任何操作。 
FilterInputStream 中的 
      mark
     readlimit - 在标记位置变无效前可以读取字节的最大限制。
     InputStream.reset()
     
public void reset()
           throws IOException 
  mark 方法时的位置。 
     类 PushbackInputStream 的方法 reset 不执行任何操作,只抛出 IOException。 
FilterInputStream 中的 
      reset
     IOException - 如果调用此方法。
     InputStream.mark(int), 
      IOException
     
public void close()
           throws IOException 
  
Closeable 中的 
      close
     FilterInputStream 中的 
      close
     IOException - 如果发生 I/O 错误。
     FilterInputStream.in
     | 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。