クラスByteArrayInputStream

java.lang.Object
java.io.InputStream
java.io.ByteArrayInputStream
すべての実装されたインタフェース:
Closeable, AutoCloseable

public class ByteArrayInputStream extends InputStream
ByteArrayInputStreamは、ストリー から読み込むことができるバイトを 納する内部バッファを保持しています。 内部カウンタによって、readメソッドで次に読み込まれるバイトを追跡します。

ByteArrayInputStreamをクローズしても効果はありません。 このクラスのメソッドは、IOExceptionを生成せずにストリー がクローズされた後にコールできます。

導入されたバージョン:
1.0
関連 目:
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected byte[]
    ストリー の作成側によって提供されたバイトの配列です。
    protected int
    インデックスは、入力ストリー バッファ内の最後の有効なバイトより1大きい値です。
    protected int
    ストリー の中で、現在マークが設定されている位置を示します。
    protected int
    入力ストリー バッファから読み取る次のバイトのインデックス。
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    bufをバッファ配列として使うように、ByteArrayInputStreamを作成します。
    ByteArrayInputStream(byte[] buf, int offset, int length)
    bufをバッファ配列として使用するByteArrayInputStreamを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    int
    この入力ストリー から、読み込むことができる(またはスキップできる)残りのバイト数を返します。
    void
    ByteArrayInputStreamをクローズしても効果はありません。
    void
    mark(int readAheadLimit)
    ストリー に現在のマーク位置を設定します。
    boolean
    このInputStreamがmark/resetをサポートしているかどうかを判定します。
    int
    この入力ストリー からデータの次のバイトを読み込みます。
    int
    read(byte[] b, int off, int len)
    最大lenバイトのデータを、この入力ストリー からバイト配列に読み込みます。
    byte[]
    入力ストリー から残りのすべてのバイトを読み取ります。
    int
    readNBytes(byte[] b, int off, int len)
    入力ストリー からリクエストされたバイト数を、指定されたバイト配列に読み取ります。
    void
    マーク位置へバッファをリセットします。
    long
    skip(long n)
    この入力ストリー をnバイト けスキップします。

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

    nullInputStream, read, readNBytes, skipNBytes, transferTo

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

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

    • buf

      protected byte[] buf
      ストリー の作成側によって提供されたバイトの配列です。 要 buf[0]からbuf[count-1]は、ストリー から読み込むことができる唯一のバイトです。要 buf[pos]は次に読み込まれるバイトです。
    • pos

      protected int pos
      入力ストリー バッファから読み取る次のバイトのインデックス。 この値は常に、 以外でなければならず、countの値より大きくてもいけません。 入力ストリー ・バッファから読み込まれる次のバイトは、buf[pos]になります。
    • mark

      protected int mark
      ストリー の中で、現在マークが設定されている位置を示します。 ByteArrayInputStreamオブジェクトは、構築時にデフォルトで位置ゼロにマークされます。 このようなオブジェクトは、mark()メソッドによりバッファ内のほかの位置にマークを設定できます。 バッファの現在位置は、reset()メソッドによりこの位置に設定されます。

      マークが設定されていない 合、マークの値はコンストラクタに渡されたオフセットになります(オフセットが渡されない 合は0)。

      導入されたバージョン:
      1.1
    • count

      protected int count
      インデックスは、入力ストリー バッファ内の最後の有効なバイトより1大きい値です。 この値は常に、 以外でなければならず、bufの長さより大きくてもいけません。 これは、入力ストリー ・バッファから読み込まれるbuf内の最後のバイト位置より1つ大きい値です。
  • コンストラクタの詳細

    • ByteArrayInputStream

      public ByteArrayInputStream(byte[] buf)
      bufをバッファ配列として使うように、ByteArrayInputStreamを作成します。 バッファ配列はコピーされません。 posの初期値は0であり、countの初期値はbufの長さです。
      パラメータ:
      buf - 入力バッファ。
    • ByteArrayInputStream

      public ByteArrayInputStream(byte[] buf, int offset, int length)
      bufをバッファ配列として使用するByteArrayInputStreamを作成します。 posの初期値はoffsetであり、countの初期値はoffset+lengthbuf.lengthの小さい方です。 バッファ配列はコピーされません。 バッファのマークは指定したオフセットに設定されます。
      パラメータ:
      buf - 入力バッファ。
      offset - バッファからのバイト読込み開始オフセット。
      length - バッファから読み込む最大バイト数。
  • メソッドの詳細

    • read

      public int read()
      この入力ストリー からデータの次のバイトを読み込みます。 バイト値は、0 - 255の範囲のintとして返されます。 ストリー の終わりに達したために読み込むバイトがない 合は、-1が返されます。

      このreadメソッドはブロックできません。

      定義:
      read、クラスInputStream
      戻り値:
      データの次のバイト。ストリー の終わりに達した 合は-1
    • read

      public int read(byte[] b, int off, int len)
      最大lenバイトのデータを、この入力ストリー からバイト配列に読み込みます。 poscountと一致する 合は、ファイルの終わりに達したことを示す-1が返されます。 それ以外の 合、読み込むバイト数kは、lencount-posの小さい方になります。 kが正の 合、System.arraycopyと同じ形式で、buf[pos]からbuf[pos+k-1]のバイトがb[off]からb[off+k-1]にコピーされます。 kposに えられ、kが返されます。

      InputStreamoverridden methodとは異なり、ストリー の末尾に達し、len == 0になった 合、このメソッドはゼロのかわりに-1を返します。

      このreadメソッドはブロックできません。

      オーバーライド:
      read、クラスInputStream
      パラメータ:
      b - データの読込み先のバッファ。
      off - データが書き込まれる配列bの開始オフセット。
      len - 読み込む最大バイト数。
      戻り値:
      バッファに読み込まれたバイトの合計数。ストリー の終わりに達してデータがない 合は-1
      スロー:
      NullPointerException - bnullである 合。
      IndexOutOfBoundsException - offが の値の 合、lenが の値の 合、あるいはlenb.length - offより大きい 合
      関連 目:
    • readAllBytes

      public byte[] readAllBytes()
      次のクラスからコピーされた説明: InputStream
      入力ストリー から残りのすべてのバイトを読み取ります。 このメソッドは、残りのすべてのバイトが読み取られてストリー の終わりが検出されるか、例外がスローされるまでブロックします。 このメソッドでは入力ストリー は閉じられません。

      このストリー がストリー の最後に達すると、このメソッドをさらに呼び出すと、空のバイト配列が返されます。

      このメソッドが、すべてのバイトを1つのバイト配列に読み取ると都合が良い簡単なケースで使用するものであることに注意してく さい。 大量のデータを含む入力ストリー の読取りを目的としていません。

      入力ストリー が「非同期クローズ」の 合、または読取り中に中断されたスレッドの動作は、入力ストリー 固有であるため、指定されません。

      入力ストリー からの読取り中にI/Oエラーが発生した 合、一部のバイト(すべてではない)が読み取られた後でエラーが発生する可能性があります。 その結果、入力ストリー がストリー の終わりに配置されず、整合性のない状態になる可能性があります。 I/Oエラーが発生した 合は、ストリー をすぐにクローズすることを強くお薦めします。

      オーバーライド:
      クラスInputStreamreadAllBytes
      戻り値:
      この入力ストリー から読み込まれたバイトを含むバイト配列
    • readNBytes

      public int readNBytes(byte[] b, int off, int len)
      次のクラスからコピーされた説明: InputStream
      入力ストリー からリクエストされたバイト数を、指定されたバイト配列に読み取ります。 このメソッドは、入力データのlenバイトが読み取られるか、ストリー の終わりが検出されるか、または例外がスローされるまでブロックします。 実際に読み取られたバイト数(おそらくゼロ)が返されます。 このメソッドでは入力ストリー は閉じられません。

      lenバイトが読み取られる前にストリー の終わりに達した 合、実際の読取りバイト数が戻されます。 このストリー がストリー の最後に到達すると、このメソッドをさらに呼び出すとゼロが返されます。

      lenがゼロの 合、バイトは読み取られず、0が戻されます。それ以外の 合、lenバイトまでの読取りが試行されます。

      最初のバイト読取りは、要 b[off]、次のバイト読取りはb[off+1]などに 納されます。 読み込まれるバイト数の上限はlenと同じです。 kを実際に読み取られるバイト数にします。これらのバイトは、要 b[off]からb[off+ k -1]に 納され、要 b[off+ k ]からb[off+len-1]は影響を受けません。

      入力ストリー が「非同期クローズ」の 合、または読取り中に中断されたスレッドの動作は、入力ストリー 固有であるため、指定されません。

      入力ストリー からの読取りでI/Oエラーが発生した 合、bの一部(すべてではない)のバイトが入力ストリー からのデータで更新された後、これが実行される可能性があります。 したがって、入力ストリー とbは一貫性のない状態になる可能性があります。 I/Oエラーが発生した 合は、ストリー をすぐにクローズすることを強くお薦めします。

      オーバーライド:
      クラスInputStreamreadNBytes
      パラメータ:
      b - データが読み込まれるバイト配列
      off - データが書き込まれるbの開始オフセット
      len - 読み込む最大バイト数
      戻り値:
      バッファに読み込まれる実際のバイト数
    • skip

      public long skip(long n)
      この入力ストリー をnバイト けスキップします。 ストリー の終わりに達した 合は、スキップされるバイト数が少なくなることがあります。 実際にスキップされるバイト数kは、ncount-posの小さい方になります。 kposに えられ、kが返されます。
      オーバーライド:
      skip、クラスInputStream
      パラメータ:
      n - スキップされるバイト数。
      戻り値:
      実際にスキップされたバイト数。
      関連 目:
    • available

      public int available()
      この入力ストリー から、読み込むことができる(またはスキップできる)残りのバイト数を返します。

      戻り値は、count - posで、入力バッファから読み込む残りのバイト数です。

      オーバーライド:
      available、クラスInputStream
      戻り値:
      ブロックせずにこの入力ストリー から読み込むことができる(またはスキップできる)残りのバイト数。
    • markSupported

      public boolean markSupported()
      このInputStreamがmark/resetをサポートしているかどうかを判定します。
      オーバーライド:
      markSupported、クラスInputStream
      実装要件:
      ByteArrayInputStreammarkSupportedメソッドは常にtrueを返します。
      戻り値:
      true
      導入されたバージョン:
      1.1
      関連 目:
    • mark

      public void mark(int readAheadLimit)
      ストリー に現在のマーク位置を設定します。 ByteArrayInputStreamオブジェクトは、構築時にデフォルトで位置ゼロにマークされます。 このようなオブジェクトは、このメソッドによりバッファ内のほかの位置にマークを設定できます。

      マークが設定されていない 合、マークの値はコンストラクタに渡されたオフセットになります(オフセットが渡されない 合は0)。

      ノート: このクラスのreadAheadLimitに意味はありません。

      オーバーライド:
      mark、クラスInputStream
      パラメータ:
      readAheadLimit - マーク位置が無効になる前に読込み可能なバイト数の上限。
      導入されたバージョン:
      1.1
      関連 目:
    • reset

      public void reset()
      マーク位置へバッファをリセットします。 ほかの位置にマークが設定されている 合またはコンストラクタにオフセットが指定されている 合を除き、マーク位置は0に設定されます。
      オーバーライド:
      reset、クラスInputStream
      関連 目:
    • close

      public void close() throws IOException
      ByteArrayInputStreamをクローズしても効果はありません。 このクラスのメソッドは、IOExceptionを生成せずにストリー がクローズされた後にコールできます。
      定義:
      close、インタフェースAutoCloseable
      定義:
      close、インタフェースCloseable
      オーバーライド:
      close、クラスInputStream
      スロー:
      IOException - 入出力エラーが発生した 合。