モジュール 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バイトが読み込まれる前にストリームの終わりに達した場合、実際に読み込まれたバイト数が返されます。 このストリームがストリームの終わりに達すると、このメソッドをさらに呼び出しても0が返されます。

      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の一部であるがすべてではないバイトが入力ストリームからのデータで更新された後に、I/Oエラーが発生する可能性があります。 その結果、入力ストリームと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をサポートしているかどうかを判定します。 ByteArrayInputStreammarkSupportedメソッドは常にtrueを返します。
      オーバーライド:
      markSupported、クラス: InputStream
      戻り値:
      このストリーム・インスタンスがmarkおよびresetメソッドをサポートしている場合はtrue、それ以外の場合はfalse
      導入されたバージョン:
      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 - 入出力エラーが発生した場合。