JavaTM 2 Platform
Standard Ed. 5.0

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 がマーク/リセットをサポートするかどうかをテストします。
 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 - データの開始オフセット
len - 読み込まれる最大バイト数
戻り値:
バッファに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は -1
関連項目:
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 がマーク/リセットをサポートするかどうかをテストします。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 2 Platform
Standard Ed. 5.0

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

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