モジュール 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
関連項目:
StringBufferInputStream
  • フィールドのサマリー

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

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

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

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

    nullInputStream, read, readAllBytes, readNBytes, 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が返されます。

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

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

      public long skip​(long n)
      この入力ストリームをnバイトだけスキップします。 ストリームの終わりに達した場合は、スキップされるバイト数が少なくなることがあります。 実際にスキップされるバイト数kは、ncount-posの小さい方になります。 kposに加えられ、kが返されます。
      オーバーライド:
      skip、クラス: InputStream
      パラメータ:
      n - スキップされるバイト数。
      戻り値:
      実際にスキップされたバイト数。
      関連項目:
      InputStream.skipNBytes(long)
    • 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
      関連項目:
      InputStream.mark(int), InputStream.reset()
    • mark

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

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

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

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

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

      public void close() throws IOException
      ByteArrayInputStreamを閉じても、何の影響もありません。 IOExceptionを生成せずにストリームが閉じられたあとで、このクラスのメソッドを呼び出すことができます。
      定義:
      close、インタフェース: AutoCloseable
      定義:
      close、インタフェース: Closeable
      オーバーライド:
      close、クラス: InputStream
      例外:
      IOException - 入出力エラーが発生した場合。