クラスPushbackInputStream

すべての実装されたインタフェース:
Closeable, AutoCloseable

public class PushbackInputStream extends FilterInputStream
PushbackInputStreamは、プッシュバック・バイトを内部バッファに 納することで、別の入力ストリー 、つまり"プッシュバック"バイトまたは"unread"バイトの機能を追 します。 これは、特定のバイト値で区切られた不定数のデータ・バイトをコード・フラグメントで読み込むと好都合な状況で役立ちます。終端バイトを読み込むと、コード・フラグメントはそれを「アンリード」できるので、入力ストリー の次の読込み操作では、プッシュバックされたそのバイトを再度読み込むことになります。 たとえば、識別子を構成している文字を表す一連のバイトは、演算子文字を表すバイトで終わることがあります。この 合、識別子を1つ け読み込むジョブを持つメソッドは、演算子を検出するまで読込みを実行し、再度読込みを行うために演算子をプッシュバックすることができます。
導入されたバージョン:
1.0
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected byte[]
    プッシュバック・バッファです。
    protected int
    プッシュバック・バッファ内の次のバイトの読込み位置です。

    クラスjava.io.FilterInputStreamで宣言されたフィールド

    in
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    1バイトのプッシュバック・バッファを使用してPushbackInputStreamを作成し、その引数(入力ストリー in)を後で使用するために保存します。
    指定されたsizeのプッシュバック・バッファを持つPushbackInputStreamを作成し、その引数である入力ストリー inをあとで使用できるように保存します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    int
    この入力ストリー のメソッドの次の呼出しによって、ブロックせずにこの入力ストリー から読み込むことができる(またはスキップできる)推定バイト数を返します。
    void
    この入力ストリー を閉じて、そのストリー に関連するすべてのシステ ・リソースを解放します。
    void
    mark(int readlimit)
    この入力ストリー の現在位置にマークを設定します。
    boolean
    この入力ストリー がmarkおよびresetメソッドをサポートしているかどうかを判定します。これらのメソッドはサポートされていません。
    int
    この入力ストリー からデータの次のバイトを読み込みます。
    int
    read(byte[] b, int off, int len)
    最大lenバイトのデータを、この入力ストリー からバイト配列に読み込みます。
    void
    このストリー を、この入力ストリー で最後にmarkメソッドが呼び出されたときの位置に再配置します。
    long
    skip(long n)
    この入力ストリー からnバイトのデータをスキップして 棄します。
    void
    unread(byte[] b)
    プッシュバック・バッファの先 にバイト配列をコピーすることによって、バイト配列をプッシュ・バックします。
    void
    unread(byte[] b, int off, int len)
    プッシュバック・バッファの先 にバイト配列の一部をコピーすることによって、それらのバイトをプッシュ・バックします。
    void
    unread(int b)
    プッシュバック・バッファの先 に1バイトをコピーすることによって、そのバイトをプッシュ・バックします。

    クラスjava.io.FilterInputStreamで宣言されたメソッド

    read

    クラスjava.io.InputStreamで宣言されたメソッド

    nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo

    クラスjava.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • フィールド詳細

    • buf

      protected byte[] buf
      プッシュバック・バッファです。
      導入されたバージョン:
      1.1
    • pos

      protected int pos
      プッシュバック・バッファ内の次のバイトの読込み位置です。 バッファが空の 合、posbuf.lengthに一致し、バッファがいっぱいの 合、posはゼロに一致します。
      導入されたバージョン:
      1.1
  • コンストラクタの詳細

    • PushbackInputStream

      public PushbackInputStream(InputStream in, int size)
      指定されたsizeのプッシュバック・バッファを持つPushbackInputStreamを作成し、その引数である入力ストリー inをあとで使用できるように保存します。 最初は、プッシュバック・バッファは空です。
      パラメータ:
      in - バイトの読込み元の入力ストリー 。
      size - プッシュバック・バッファのサイズ。
      スロー:
      IllegalArgumentException - size <= 0の 合
      導入されたバージョン:
      1.1
    • PushbackInputStream

      public PushbackInputStream(InputStream in)
      1バイトのプッシュバック・バッファを使用してPushbackInputStreamを作成し、その引数(入力ストリー in)を後で使用するために保存します。 最初は、プッシュバック・バッファは空です。
      パラメータ:
      in - バイトの読込み元の入力ストリー 。
  • メソッドの詳細

    • read

      public int read() throws IOException
      この入力ストリー からデータの次のバイトを読み込みます。 バイト値は、0 - 255の範囲のintとして返されます。 ストリー の終わりに達したために読み込むバイトがない 合は、-1が返されます。 入力データが読み込めるようになるか、ストリー の終わりが検出されるか、または例外が発生するまで、このメソッドはブロックされます。

      このメソッドは、最後にプッシュ・バックされたバイトがある 合にはそれを返します。それがない 合、そのベースとなる入力ストリー のreadメソッドを呼び出してその戻り値を返します。

      オーバーライド:
      read、クラスFilterInputStream
      戻り値:
      データの次のバイト。ストリー の終わりに達した 合は-1
      スロー:
      IOException - この入力ストリー がそのclose()メソッドの呼出しによって閉じられた 合、または入出力エラーが発生した 合。
      関連 目:
    • read

      public int read(byte[] b, int off, int len) throws IOException
      最大lenバイトのデータを、この入力ストリー からバイト配列に読み込みます。 このメソッドは、プッシュバックされたバイトがあればそれらを最初に読み込みます。次に、読み込まれたバイトがlenバイトよりも少ない 合は、ベースとなる入力ストリー から読み込みます。 lenが0でない 合、このメソッドは入力の少なくとも1バイトが利用できるようになるまでブロックします。それ以外の 合、バイトは読み込まれず、0が返されます。
      オーバーライド:
      read、クラスFilterInputStream
      パラメータ:
      b - データの読込み先のバッファ。
      off - 転送先配列の開始オフセットb
      len - 読み込まれる最大バイト数。
      戻り値:
      バッファに読み込まれたバイトの合計数。ストリー の終わりに達してデータがない 合は-1
      スロー:
      NullPointerException - bnullである 合。
      IndexOutOfBoundsException - offが の値の 合、lenが の値の 合、あるいはlenb.length - offより大きい 合
      IOException - この入力ストリー がそのclose()メソッドの呼出しによって閉じられた 合、または入出力エラーが発生した 合。
      関連 目:
    • unread

      public void unread(int b) throws IOException
      プッシュバック・バッファの先 に1バイトをコピーすることによって、そのバイトをプッシュ・バックします。 このメソッドが復帰すると、次に読み込まれるバイトは値(byte)bを持ちます。
      パラメータ:
      b - プッシュ・バックされる下位のバイトを持つint値。
      スロー:
      IOException - バイトに対して、プッシュバック・バッファに十分なスペースがない 合、またはこの入力ストリー がclose()メソッドの呼出しによって閉じられた 合。
    • unread

      public void unread(byte[] b, int off, int len) throws IOException
      プッシュバック・バッファの先 にバイト配列の一部をコピーすることによって、それらのバイトをプッシュ・バックします。 このメソッドが復帰すると、次に読み込まれるバイトは値b[off]を持ち、その次のバイトは値b[off+1]を持ちます。それ以降も同様に続きます。
      パラメータ:
      b - プッシュ・バックするバイトの配列。
      off - データの開始オフセット。
      len - プッシュ・バックするバイト数。
      スロー:
      NullPointerException - bnullである 合。
      IOException - 指定されたバイト数に対して、プッシュバック・バッファに十分なスペースがない 合、またはこの入力ストリー がそのclose()メソッドの呼出しによって閉じられた 合。
      導入されたバージョン:
      1.1
    • unread

      public void unread(byte[] b) throws IOException
      プッシュバック・バッファの先 にバイト配列をコピーすることによって、バイト配列をプッシュ・バックします。 このメソッドが復帰すると、次に読み込まれるバイトは値b[0]を持ち、その次のバイトは値b[1]を持ちます。それ以降も同様に続きます。
      パラメータ:
      b - プッシュ・バックするバイトの配列
      スロー:
      NullPointerException - bnullである 合。
      IOException - 指定されたバイト数に対して、プッシュバック・バッファに十分なスペースがない 合、またはこの入力ストリー がそのclose()メソッドの呼出しによって閉じられた 合。
      導入されたバージョン:
      1.1
    • available

      public int available() throws IOException
      この入力ストリー のメソッドの次の呼出しによって、ブロックせずにこの入力ストリー から読み込むことができる(またはスキップできる)推定バイト数を返します。 次の呼出しは、同じスレッドの 合も別のスレッドの 合もあります。 このような多数のバイトを1回で読み込ん りスキップしたりすることでブロックすることはありませんが、読み込むまたはスキップするバイト数が少なくなることがあります。

      このメソッドは、プッシュ・バックされたバイト数の合計とavailableによって返された値を返します。

      オーバーライド:
      available、クラスFilterInputStream
      戻り値:
      ブロックせずに入力ストリー から読み込むことができる(またはスキップできる)バイト数。
      スロー:
      IOException - この入力ストリー がそのclose()メソッドの呼出しによって閉じられた 合、または入出力エラーが発生した 合。
      関連 目:
    • skip

      public long skip(long n) throws IOException
      この入力ストリー からnバイトのデータをスキップして 棄します。 さまざまな理由から、skipメソッドは指定よりも少ないバイト数しかスキップしないことがあります。0の 合もあります。 nが の 合、バイトはスキップされません。

      PushbackInputStreamskipメソッドは、ブッシュバック・バッファにバイトが存在すれば、最初にそれらをスキップします。 さらにスキップする必要があるバイトが存在すると、ベースとなる入力ストリー のskipメソッドを呼び出します。 スキップされた実際のバイト数が返されます。

      オーバーライド:
      skip、クラスFilterInputStream
      パラメータ:
      n - スキップされるバイト数。
      戻り値:
      実際にスキップされたバイト数。
      スロー:
      IOException - ストリー がclose()メソッドを呼び出してクローズされている 合、in.skip(n)はIOExceptionをスローするか、I/Oエラーが発生します。
      導入されたバージョン:
      1.2
      関連 目:
    • markSupported

      public boolean markSupported()
      この入力ストリー がmarkおよびresetメソッドをサポートしているかどうかを判定します。これらのメソッドはサポートされていません。
      オーバーライド:
      markSupported、クラスFilterInputStream
      戻り値:
      このクラスはmarkメソッドとresetメソッドをサポートしていないので、false
      関連 目:
    • mark

      public void mark(int readlimit)
      この入力ストリー の現在位置にマークを設定します。

      PushbackInputStreammarkメソッドは何も行いません。

      オーバーライド:
      mark、クラスFilterInputStream
      パラメータ:
      readlimit - マーク位置が無効になる前に読込み可能なバイト数の上限。
      関連 目:
    • reset

      public void reset() throws IOException
      このストリー を、この入力ストリー で最後にmarkメソッドが呼び出されたときの位置に再配置します。

      PushbackInputStreamクラスのresetメソッドはIOExceptionをスローする以外何も行いません。

      オーバーライド:
      reset、クラスFilterInputStream
      スロー:
      IOException - このメソッドが呼び出された 合。
      関連 目:
    • close

      public void close() throws IOException
      この入力ストリー を閉じて、そのストリー に関連するすべてのシステ ・リソースを解放します。 ストリー が閉じられたあとにread()、unread()、available()、reset()、またはskip()を呼び出すと、IOExceptionがスローされます。 すでに閉じられているストリー を閉じても、何の影響もありません。
      定義:
      close、インタフェースAutoCloseable
      定義:
      close、インタフェースCloseable
      オーバーライド:
      close、クラスFilterInputStream
      スロー:
      IOException - 入出力エラーが発生した 合。
      関連 目: