|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.io.InputStream
public abstract class InputStream
この抽象クラスは、バイト入力ストリームを表現するすべてのクラスのスーパークラスです。
InputStream
のサブクラスを定義する必要のあるアプリケーションは、必ず入力の次のバイトを返すメソッドを提供しなければなりません。
BufferedInputStream
,
ByteArrayInputStream
,
DataInputStream
,
FilterInputStream
,
read()
,
OutputStream
,
PushbackInputStream
コンストラクタの概要 | |
---|---|
InputStream()
|
メソッドの概要 | |
---|---|
int |
available()
この入力ストリームのメソッドの次の呼び出しによって、ブロックせずにこの入力ストリームから読み込むことができる (またはスキップできる) 推定バイト数を返します。 |
void |
close()
この入力ストリームを閉じて、そのストリームに関連するすべてのシステムリソースを解放します。 |
void |
mark(int readlimit)
この入力ストリームの現在位置にマークを設定します。 |
boolean |
markSupported()
入力ストリームが mark と reset メソッドをサポートしているかどうかを判定します。 |
abstract int |
read()
入力ストリームからデータの次のバイトを読み込みます。 |
int |
read(byte[] b)
入力ストリームから数バイトを読み込み、それをバッファー配列 b に格納します。 |
int |
read(byte[] b,
int off,
int len)
最大 len バイトまでのデータを、入力ストリームからバイト配列に読み込みます。 |
void |
reset()
このストリームの位置を、入力ストリームで最後に mark メソッドが呼び出されたときのマーク位置に再設定します。 |
long |
skip(long n)
この入力ストリームから n バイト分をスキップおよび破棄します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
public InputStream()
メソッドの詳細 |
---|
public abstract int read() throws IOException
0
〜 255
の範囲の int
として返されます。ストリームの終わりに達したために読み込むバイトがない場合は、値 -1
が返されます。入力データが読み込めるようになるか、ファイルの終わりが検出されるか、または例外が発生するまで、このメソッドはブロックされます。
サブクラスは、このメソッドの実装を提供しなければなりません。
-1
IOException
- 入出力エラーが発生した場合public int read(byte[] b) throws IOException
b
に格納します。実際に読み込まれたバイト数は整数として返されます。このメソッドは、入力データが読み込めるようになるか、ファイルの終わりが検出されるか、あるいは例外がスローされるまでブロックします。
b
の長さが 0 の場合は、バイトは読み込まれず、0
が返されます。そうでない場合は、少なくとも 1 バイトを読み込もうとします。ストリームがファイルの終わりに達したために読み込むバイトがない場合は値 -1
が返されます。そうでない場合は、少なくとも 1 バイトが読み込まれ、b
に格納されます。
最初に読み込まれたバイトは要素 b[0]
に格納され、次のバイトは b[1]
に格納され、それ以降も同様に続きます。読み込まれるバイト数の上限は b
の長さと同じです。実際に読み込まれるバイト数を k とすると、これらのバイトは要素 b[0]
〜 b[
k-1]
に格納され、要素 b[
k]
〜 b[b.length-1]
は影響を受けません。
InputStream
クラスの read(b)
メソッドの効果は、以下と同じです。
read(b, 0, b.length)
b
- データの読み込み先のバッファ
-1
IOException
- ファイルの終わりに達していること以外の理由で最初のバイトを読み込めない場合、入力ストリームが閉じられた場合、またはその他の入出力エラーが発生した場合
NullPointerException
- b
が null
の場合read(byte[], int, int)
public int read(byte[] b, int off, int len) throws IOException
len
バイトまでのデータを、入力ストリームからバイト配列に読み込みます。len
バイトまでの読み込みが試行されますが、読み込まれるバイト数はもっと少ない場合もあります。実際に読み込まれたバイト数は整数として返されます。
このメソッドは、入力データが読み込めるようになるか、ファイルの終わりが検出されるか、あるいは例外がスローされるまでブロックします。
len
が 0 の場合、バイトは読み込まれず、0
が返されます。そうでない場合は、少なくとも 1 バイトを読み込もうとします。ストリームがファイルの終わりに達したために読み込むバイトがない場合は値 -1
が返されます。そうでない場合は、少なくとも 1 バイトが読み込まれ、b
に格納されます。
最初に読み込まれたバイトは要素 b[off]
に格納され、次のバイトは b[off+1]
に格納され、それ以降も同様に続きます。読み込まれるバイト数の上限は len
と同じです。実際に読み込まれるバイト数を k とすると、これらのバイトは要素 b[off]
〜 b[off+
k-1]
に格納され、要素 b[off+
k]
〜 b[off+len-1]
は影響を受けません。
すべての場合に、要素 b[0]
〜 b[off]
および要素 b[off+len]
〜 b[b.length-1]
は影響を受けません。
InputStream
クラスの read(b,
off,
len)
メソッドは、単純に read()
メソッドを繰り返し呼び出します。最初の呼び出しの結果が IOException
である場合は、その例外は read(b,
off,
len)
メソッドの呼び出しから返されます。その後の read()
の呼び出し結果が IOException
になった場合は、ファイルの終わりに達した場合と同じように例外がキャッチされて処理されます。つまり、その時点までに読み込まれたバイトは b
に格納され、例外が発生するまでに読み込まれたバイト数が返されます。このメソッドのデフォルトの実装は、要求された量 len
の入力データが読み込まれるか、ファイルの終わりが検出されるか、あるいは例外がスローされるまでブロックします。サブクラスでこのメソッドを実装する場合は、より効率的に実装してください。
b
- データの読み込み先のバッファoff
- データが書き込まれる配列 b
の開始オフセットlen
- 読み込む最大バイト数
-1
IOException
- ファイルの終わりに達していること以外の理由で最初のバイトを読み込めない場合、入力ストリームが閉じられた場合、またはその他の入出力エラーが発生した場合
NullPointerException
- b
が null
の場合
IndexOutOfBoundsException
- off
が負の場合、len
が負の場合、または len
が b.length - off
よりも大きい場合read()
public long skip(long n) throws IOException
n
バイト分をスキップおよび破棄します。さまざまな理由から、skip
メソッドは指定よりも少ないバイト数しかスキップしないことがあります。0
の場合もあります。このスキップは複数の条件に起因する可能性がありますが、考えられる唯一の場合は、n
バイトがスキップされる前にファイルの終わりに達した場合です。スキップされた実際のバイト数が返されます。n
が負の場合、バイトはスキップされません。
このクラスの skip
メソッドはバイト配列を作成し、n
バイトが読み込まれるまで、またはストリームの終わりに達するまで繰り返しその中に読み込みます。サブクラスでこのメソッドを実装する場合は、より効率的に実装してください。たとえば、実装はシークの機能に依存する可能性があります。
n
- スキップするバイト数
IOException
- ストリームがシークをサポートしない場合、またはその他の入出力エラーが発生した場合public int available() throws IOException
InputStream
の実装には、ストリームの合計バイト数を返すものもありますが、多くの実装は返さないことに注意してください。このストリームのデータをすべて保持するためのバッファーを割り当てるのに、このメソッドの戻り値を使用することは、適切ではありません。
close()
メソッドの呼び出しによってこの入力ストリームが閉じられた場合、このメソッドのサブクラスの実装は IOException
をスローすることがあります。
InputStream
クラスの available
メソッドは常に 0
を返します。
サブクラスはこのメソッドをオーバーライドする必要があります。
0
IOException
- 入出力エラーが発生した場合public void close() throws IOException
InputStream
の close
メソッドは何も行いません。
Closeable
内の close
IOException
- 入出力エラーが発生した場合public void mark(int readlimit)
reset
メソッドを呼び出すと、最後にマークが設定された位置にストリームを再設定するため、次回の読み込み操作では同じバイトから読み込むことになります。
引数 readlimit
はこの入力ストリームに対して、マーク位置が無効になる前にこの引数が指定するバイト数を読み込むように指示します。
mark
の汎用規約を次に示します。markSupported
メソッドが true
を返す場合、ストリームは mark
の呼び出しのあとに読み込まれたすべてのバイトを記憶し、reset
メソッドが呼び出されたときにそれらの同じバイトを再び供給するように準備します。ただし、reset
が呼び出される前に readlimit
より多くバイトがストリームから読み込まれている場合は、ストリームはデータを記憶する必要はありません。
閉じられたストリームにマークを設定するときに、ストリームに影響を与えてはいけません。
InputStream
の mark
メソッドは何も行いません。
readlimit
- マーク位置が無効になる前に読み込み可能なバイトの最大リミットreset()
public void reset() throws IOException
mark
メソッドが呼び出されたときのマーク位置に再設定します。
reset
メソッドの一般的な規約を次に示します。
markSupported
メソッドが true
を返す場合
mark
メソッドが呼び出されていない場合、あるいは mark
が最後に呼び出されてから、ストリームから読み込まれたバイト数が最後の呼び出しの mark
の引数より多い場合は、IOException
がスローされることがある
IOException
がスローされない場合、mark
が最後に呼び出されてから (mark
が呼び出されていない場合はファイルの先頭から) 読み込まれたすべてのバイトが read
メソッドの以降の呼び出し側に再び供給されるような状態にストリームがリセットされる。reset
の呼び出しの時点で次の入力データになっていたはずのバイトが続く markSupported
メソッドが true
を返す場合
reset
の呼び出しは IOException
をスローする場合がある
IOException
がスローされない場合、ストリームは、入力ストリームの特定のタイプおよびその作成方法に依存する固定状態にリセットされる。read
メソッドの以降の呼び出し側に供給されるバイトは、入力ストリームの特定のタイプに依存する InputStream
クラスの reset
メソッドは、IOException
をスローする以外何も行いません。
IOException
- ストリームにマークが設定されていなかった場合、またはマークが無効になっていた場合mark(int)
,
IOException
public boolean markSupported()
mark
と reset
メソッドをサポートしているかどうかを判定します。mark
および reset
がサポートされているかどうかは、入力ストリームインスタンスごとに異なります。InputStream
の markSupported
メソッドは false
を返します。
- 戻り値:
- このストリームインスタンスが mark および reset メソッドをサポートしている場合は
true
、サポートしていない場合は false
- 関連項目:
mark(int)
,
reset()
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。