モジュール java.base
パッケージ java.io

クラス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 - 入出力エラーが発生した場合。