|
Foundation 1.1.2 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.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 が null の場合は、NullPointerException がスローされます。b の長さが 0 の場合は、バイトは読み込まれず、0 が返されます。そうでない場合は、少なくとも 1 バイトを読み込もうとします。ストリームがファイルの終わりに達したために読み込むバイトがない場合は値 -1 が返されます。そうでない場合は、少なくとも 1 バイトが読み込まれ、b に格納されます。
最初に読み込まれたバイトは要素 b[0] に格納され、次のバイトは b[1] に格納され、それ以降も同様に続きます。読み込まれるバイト数の上限は b の長さと同じです。実際に読み込まれるバイト数を k とすると、これらのバイトは要素 b[0] 〜 b[k-1] に格納され、要素 b[k] 〜 b[b.length-1] は影響を受けません。
ファイルの終わりに達している以外の理由で最初のバイトが読み込めない場合は、IOException がスローされます。特に、入力ストリームが閉じている場合には IOException がスローされます。
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 バイトまでの読み込みが試行されますが、読み込まれるバイト数はもっと少ない場合もあり、0 の場合もあります。実際に読み込まれたバイト数は整数として返されます。
このメソッドは、入力データが読み込めるようになるか、ファイルの終わりが検出されるか、あるいは例外がスローされるまでブロックします。
b が null の場合は、NullPointerException がスローされます。
off が負の場合、len が負の場合、あるいは off+len が配列 b の長さより大きい場合は、IndexOutOfBoundsException がスローされます。
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] は影響を受けません。
ファイルの終わり以外のなんらかの理由により最初のバイトを読み込むことができない場合は、IOException がスローされます。特に、入力ストリームが閉じている場合は、IOException がスローされます。
InputStream クラスの read(b, off, len) メソッドは、単純に read() メソッドを繰り返し呼び出します。最初の呼び出しの結果が IOException である場合は、その例外は read(b, off, len) メソッドの呼び出しから返されます。その後の read() の呼び出し結果が IOException になった場合は、ファイルの終わりに達した場合と同じように例外がキャッチされて処理されます。つまり、その時点までに読み込まれたバイトは b に格納され、例外が発生するまでに読み込まれたバイト数が返されます。サブクラスでこのメソッドを実装する場合は、より効率的に実装してください。
b - データの読み込み先のバッファーoff - データが書き込まれる配列 b の開始オフセットlen - 読み込む最大バイト数
-1
IOException - 入出力エラーが発生した場合
NullPointerException - b が null の場合read()
public long skip(long n)
throws IOException
n バイト分をスキップおよび破棄します。さまざまな理由から、skip メソッドは指定よりも少ないバイト数しかスキップしないことがあります。0 の場合もあります。このスキップは複数の条件に起因する可能性がありますが、考えられる唯一の場合は、n バイトがスキップされる前にファイルの終わりに達した場合です。スキップされた実際のバイト数が返されます。n が負の場合、バイトはスキップされません。
InputStream の skip メソッドはバイト配列を作成し、n バイトが読み込まれるまで、またはストリームの終わりに達するまで繰り返しその中に読み込みます。サブクラスでこのメソッドを実装する場合は、より効率的に実装してください。
n - スキップするバイト数
IOException - 入出力エラーが発生した場合
public int available()
throws IOException
InputStream クラスの available メソッドは常に 0 を返します。
サブクラスはこのメソッドをオーバーライドする必要があります。
IOException - 入出力エラーが発生した場合
public void close()
throws IOException
InputStream の 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 メソッドが false を返す場合
reset の呼び出しは IOException をスローする場合がある
IOException がスローされない場合、ストリームは、入力ストリームの特定のタイプおよびその作成方法に依存する固定状態にリセットされる。read メソッドの以降の呼び出し側に供給されるバイトは、入力ストリームの特定のタイプに依存する InputStream クラスの reset メソッドは何も行わず、常に IOException をスローします。
IOException - このストリームにマークが設定されていなかった場合、またはマークが無効になっていた場合mark(int),
IOExceptionpublic boolean markSupported()
mark と reset メソッドをサポートしているかどうかを判定します。mark および reset がサポートされているかどうかは、入力ストリームインスタンスごとに異なります。InputStream の markSupported メソッドは false を返します。
true、サポートしていない場合は falsemark(int),
reset()
|
Foundation 1.1.2 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。