java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

java.io
类 PushbackInputStream

java.lang.Object
  继承者 java.io.InputStream
      继承者 java.io.FilterInputStream
          继承者 java.io.PushbackInputStream
所有已实现的接口:
Closeable

public class PushbackInputStream
extends FilterInputStream

PushbackInputStream 向另一个输入流添加“推回 (push back)”或“取消读取 (unread)”一个字节的功能。这在以下情况下非常有用,即代码片段可以很方便地读取由特定字节值分隔的不定数量的数据字节;在读取终止字节后,该代码片段可以“取消读取”该字节,这样,输入流上的下一个读取操作将会重新读取被推回的字节。例如,表示构成标识符的字符的字节可能由表示操作符字符的字节终止;其作业只是读取标识符的方法可以进行读取,直到该操作看到此操作符,然后将该操作符推回以进行重读。

从以下版本开始:
JDK1.0

字段摘要
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()
          测试此输入流是否支持 markreset 方法以及不支持哪一个。
 int read()
          从此输入流中读取下一个数据字节。
 int read(byte[] b, int off, int len)
          从此输入流将最多 len 个数据字节读入字节数组。
 void reset()
          将此流重新定位到对此输入流最后调用 mark 方法时的位置。
 long skip(long n)
          从此输入流中跳过并丢弃 n 个数据字节。
 void unread(byte[] b)
          推回一个字节数组,方法是将其复制到推回缓冲区前面。
 void unread(byte[] b, int off, int len)
          推回字节数组的某一部分,方法是将其复制到推回缓冲区前面。
 void unread(int b)
          推回一个字节,方法是将其复制到推回缓冲区前面。
 
从类 java.io.FilterInputStream 继承的方法
read
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

buf

protected byte[] buf
推回缓冲区。

从以下版本开始:
JDK1.1

pos

protected int pos
推回缓冲区中的位置,从该位置将读取下一个字节。当该缓冲区为空时,pos 将等于 buf.length;当该缓冲区为满时,pos 将等于零。

从以下版本开始:
JDK1.1
构造方法详细信息

PushbackInputStream

public PushbackInputStream(InputStream in,
                           int size)
使用指定 size 的推回缓冲区创建 PushbackInputStream,并保存其参数输入流 in,以便将来使用。最初,不存在推回字节(字段 pushBack 被初始化为 -1)。

参数:
in - 从中读取字节的输入流。
size - 推回缓冲区的大小。
抛出:
IllegalArgumentException - 如果 size <= 0
从以下版本开始:
JDK1.1

PushbackInputStream

public PushbackInputStream(InputStream in)
创建 PushbackInputStream 并保存其参数输入流 in,以便将来使用。最初,不存在推回字节(字段 pushBack 被初始化为 -1)。

参数:
in - 从中读取字节的输入流。
方法详细信息

read

public int read()
         throws IOException
从此输入流中读取下一个数据字节。返回 0255 范围内的 int 字节值。如果因流的末尾已到达而没有可用的字节,则返回值 -1。在输入数据可用、检测到流的末尾或者抛出异常前,此方法一直阻塞。

此方法返回最近推回的字节(如果存在),否则调用其基础输入流的 read 方法,并返回该方法返回的任何值。

覆盖:
FilterInputStream 中的 read
返回:
下一个数据字节,如果到达流的末尾,则返回 -1
抛出:
IOException - 如果发生 I/O 错误。
另请参见:
InputStream.read()

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
从此输入流将最多 len 个数据字节读入字节数组。此方法首先读取任何推回字节;然后,如果读取数少于 len 个字节,则它将从基础输入流读取。在至少 1 个输入字节可用前,此方法一直阻塞。

覆盖:
FilterInputStream 中的 read
参数:
b - 读入数据的缓冲区。
off - 数据的初始偏移量。
len - 读取的最大字节数。
返回:
读入缓冲区的总字节数,如果由于流末尾已到达而不再有数据,则返回 -1
抛出:
IOException - 如果发生 I/O 错误。
另请参见:
InputStream.read(byte[], int, int)

unread

public void unread(int b)
            throws IOException
推回一个字节,方法是将其复制到推回缓冲区前面。在返回此方法后,要读取的下一个字节将具有值 (byte)b

参数:
b - 要推回其低位字节的 int 值。
抛出:
IOException - 如果推回缓冲区中没有存储字节的足够空间。

unread

public void unread(byte[] b,
                   int off,
                   int len)
            throws IOException
推回字节数组的某一部分,方法是将其复制到推回缓冲区前面。在返回此方法后,要读取的下一个字节将具有值 b[off],其后的字节将具有值 b[off+1],依次类推。

参数:
b - 要推回的字节数组。
off - 数据的初始偏移量。
len - 要推回的字节数。
抛出:
IOException - 如果推回缓冲区中没有存储指定字节数的足够空间。
从以下版本开始:
JDK1.1

unread

public void unread(byte[] b)
            throws IOException
推回一个字节数组,方法是将其复制到推回缓冲区前面。在返回此方法后,要读取的下一个字节将具有值 b[0],其后的字节将具有值 b[1],依次类推。

参数:
b - 要推回的字节数组
抛出:
IOException - 如果推回缓冲区中没有存储指定字节数的足够空间。
从以下版本开始:
JDK1.1

available

public int available()
              throws IOException
返回可以不受阻塞地从此输入流读取的字节数。此方法调用基础输入流的 available 方法;它返回该值加上已被推回的字节数。

覆盖:
FilterInputStream 中的 available
返回:
可以不受阻塞地从此输入流读取的字节数。
抛出:
IOException - 如果发生 I/O 错误。
另请参见:
FilterInputStream.in, InputStream.available()

skip

public long skip(long n)
          throws IOException
从此输入流中跳过并丢弃 n 个数据字节。skip 方法可能由于多种原因跳过一些较少数量的字节(可能为零)而结束。如果 n 为负数,则不跳过任何字节。

PushbackInputStreamskip 方法首先跳过推回缓冲区中的字节(如果存在)。如果需要跳过更多字节,接着它将调用基础输入流的 skip 方法。返回跳过的实际字节数。

覆盖:
FilterInputStream 中的 skip
参数:
n - 要跳过的字节数。
返回:
跳过的实际字节数。
抛出:
IOException - 如果发生 I/O 错误。
从以下版本开始:
1.2
另请参见:
FilterInputStream.in, InputStream.skip(long n)

markSupported

public boolean markSupported()
测试此输入流是否支持 markreset 方法以及不支持哪一个。

覆盖:
FilterInputStream 中的 markSupported
返回:
因为此类不支持 markreset 方法而返回 false
另请参见:
InputStream.mark(int), InputStream.reset()

mark

public void mark(int readlimit)
在此输入流中标记当前的位置。

PushbackInputStreammark 方法不执行任何操作。

覆盖:
FilterInputStream 中的 mark
参数:
readlimit - 在标记位置变得无效前可以读取字节的最大限制。
另请参见:
InputStream.reset()

reset

public void reset()
           throws IOException
将此流重新定位到对此输入流最后调用 mark 方法时的位置。

除了抛出 IOException 之外,类 PushbackInputStream 的方法 reset 不执行任何操作。

覆盖:
FilterInputStream 中的 reset
抛出:
IOException - 如果调用此方法。
另请参见:
InputStream.mark(int), IOException

close

public void close()
           throws IOException
关闭此输入流并释放与此流关联的所有系统资源。

指定者:
接口 Closeable 中的 close
覆盖:
FilterInputStream 中的 close
抛出:
IOException - 如果发生 I/O 错误。
另请参见:
FilterInputStream.in

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策