public class ByteArrayInputStream extends InputStream
ByteArrayInputStream
は、ストリームから読み込むことができるバイトを格納する内部バッファーを保持しています。内部カウンタによって、read
メソッドで次に読み込まれるバイトを追跡します。
ByteArrayInputStream を閉じても、何の影響もありません。IOException を生成せずにストリームが閉じられたあとで、このクラスのメソッドを呼び出すことができます。
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 バイトだけスキップします。 |
read
protected byte[] buf
buf[0]
から buf[count-1]
は、ストリームから読み込むことができる唯一のバイトです。要素 buf[pos]
は次に読み込まれるバイトです。protected int pos
count
の値より大きくてもいけません。入力ストリームバッファーから読み込まれる次のバイトは、buf[pos]
になります。protected int mark
mark()
メソッドによりバッファー内のほかの位置にマークを設定できます。バッファーの現在位置は、reset()
メソッドによりこの位置に設定されます。
マークが設定されていない場合、マークの値はコンストラクタに渡されたオフセットになります (オフセットが渡されない場合は 0)。
protected int count
buf
の長さより大きくてもいけません。これは、入力ストリームバッファーから読み込まれる buf
内の最後のバイト位置より 1 つ大きい値です。public ByteArrayInputStream(byte[] buf)
buf
をバッファー配列として使うように、ByteArrayInputStream
を作成します。バッファー配列はコピーされません。pos
の初期値は 0
であり、count
の初期値は buf
の長さです。buf
- 入力バッファー。public ByteArrayInputStream(byte[] buf, int offset, int length)
buf
をバッファー配列として使用する ByteArrayInputStream
を作成します。pos
の初期値は offset
であり、count
の初期値は offset+length
と buf.length
の小さい方です。バッファー配列はコピーされません。バッファーのマークは指定したオフセットに設定されます。buf
- 入力バッファー。offset
- バッファーからのバイト読み込み開始オフセット。length
- バッファーから読み込む最大バイト数。public int read()
0
- 255
の範囲の int
として返されます。ストリームの終わりに達したために読み込むバイトがない場合は、-1
が返されます。
この read
メソッドはブロックできません。
read
、クラス: InputStream
-1
。public int read(byte[] b, int off, int len)
len
バイトのデータを、この入力ストリームからバイト配列に読み込みます。pos
が count
と一致する場合は、ファイルの終わりに達したことを示す -1
が返されます。それ以外の場合、読み込むバイト数 k
は、len
と count-pos
の小さい方になります。k
が正の場合、System.arraycopy
と同じ形式で、buf[pos]
から buf[pos+k-1]
のバイトが b[off]
から b[off+k-1]
にコピーされます。値 k
が pos
に加えられ、k
が返されます。
この read
メソッドはブロックできません。
read
、クラス: InputStream
b
- データの読み込み先のバッファー。off
- 転送先配列 b
の開始オフセットlen
- 読み込まれる最大バイト数。-1
。NullPointerException
- b
が null
である場合。IndexOutOfBoundsException
- off
が負の値の場合、len
が負の値の場合、あるいは len
が b.length - off
より大きい場合InputStream.read()
public long skip(long n)
n
バイトだけスキップします。ストリームの終わりに達した場合は、スキップされるバイト数が少なくなることがあります。実際にスキップされるバイト数 k
は、n
と count-pos
の小さい方になります。値 k
が pos
に加えられ、k
が返されます。skip
、クラス: InputStream
n
- スキップされるバイト数。public int available()
戻り値は、count - pos
で、入力バッファーから読み込む残りのバイト数です。
available
、クラス: InputStream
public boolean markSupported()
InputStream
が mark/reset をサポートしているかどうかを判定します。ByteArrayInputStream
の markSupported
メソッドは常に true
を返します。markSupported
、クラス: InputStream
true
、それ以外の場合は false
。InputStream.mark(int)
, InputStream.reset()
public void mark(int readAheadLimit)
マークが設定されていない場合、マークの値はコンストラクタに渡されたオフセットになります (オフセットが渡されない場合は 0)。
注: このクラスの readAheadLimit
に意味はありません。
mark
、クラス: InputStream
readAheadLimit
- マーク位置が無効になる前に読み込み可能なバイト数の上限。InputStream.reset()
public void reset()
reset
、クラス: InputStream
InputStream.mark(int)
、IOException
public void close() throws IOException
close
、インタフェース: Closeable
close
、インタフェース: AutoCloseable
close
、クラス: InputStream
IOException
- 入出力エラーが発生した場合。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.