JavaTM Platform
Standard Ed. 6

java.io
クラス ByteArrayInputStream

java.lang.Object
  上位を拡張 java.io.InputStream
      上位を拡張 java.io.ByteArrayInputStream
すべての実装されたインタフェース:
Closeable

public class ByteArrayInputStream
extends InputStream

ByteArrayInputStream は、ストリームから読み込まれたバイトを格納する内部バッファーを保持しています。内部カウンタによって、read メソッドで次に読み込まれるバイトを追跡します。

ByteArrayInputStream を閉じても、何の影響もありません。IOException を生成せずにストリームが閉じられたあとで、このクラスのメソッドを呼び出すことができます。

導入されたバージョン:
JDK1.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 から継承されたメソッド
read
 
クラス 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)。

導入されたバージョン:
JDK1.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()
この入力ストリームからデータの次のバイトを読み込みます。値のバイトは、0255 の範囲の int として返されます。ストリームの終わりに達したために読み込むバイトがない場合は、値 -1 が返されます。

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

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

read

public int read(byte[] b,
                int off,
                int len)
入力ストリームから最大 len バイトのデータをバイト配列に読み込みます。poscount と一致する場合は、ファイルの終わりに達したことを示す -1 が返されます。そうでない場合は、読み込まれるバイト数 klencount-pos のうちのどちらか小さい方に一致します。k が正の値の場合、buf[pos]buf[pos+k-1] の範囲内のバイトが、System.arraycopy により実行される方法で b[off]b[off+k-1] にコピーされます。値 kpos に加えられ、k が返されます。

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

オーバーライド:
クラス InputStream 内の read
パラメータ:
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 が返されます。

オーバーライド:
クラス InputStream 内の skip
パラメータ:
n - スキップするバイト数
戻り値:
実際にスキップされたバイト数

available

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

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

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

markSupported

public boolean markSupported()
この InputStream が mark/reset をサポートしているかどうかを判定します。ByteArrayInputStreammarkSupported メソッドは常に true を返します。

オーバーライド:
クラス InputStream 内の markSupported
戻り値:
このストリームインスタンスが mark および reset メソッドをサポートしている場合は true、サポートしていない場合は false
導入されたバージョン:
JDK1.1
関連項目:
InputStream.mark(int), InputStream.reset()

mark

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

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

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

オーバーライド:
クラス InputStream 内の mark
パラメータ:
readAheadLimit - マーク位置が無効になる前に読み込み可能なバイトの最大リミット
導入されたバージョン:
JDK1.1
関連項目:
InputStream.reset()

reset

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

オーバーライド:
クラス InputStream 内の reset
関連項目:
InputStream.mark(int), IOException

close

public void close()
           throws IOException
ByteArrayInputStream を閉じても、何の影響もありません。IOException を生成せずにストリームが閉じられたあとで、このクラスのメソッドを呼び出すことができます。

定義:
インタフェース Closeable 内の close
オーバーライド:
クラス InputStream 内の close
例外:
IOException - 入出力エラーが発生した場合

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。