|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.io.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
- 入出力エラーが発生した場合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
- 入出力エラーが発生した場合read()
public long skip(long n) throws IOException
n
バイトだけスキップしてその範囲のデータを破棄します。さまざまな理由から、skip
メソッドは、指定されたよりも少ないバイト数 (0
の場合もある) しかスキップしないことがあります。これはさまざまな状況が原因として考えられます。たとえば、n
バイトがスキップされる前にファイルの終わりに達してしまうことも、うまくスキップできない原因の 1 つです。実際にスキップしたバイト数が返されます。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)
,
IOException
public boolean markSupported()
mark
と reset
メソッドをサポートしているかどうかを判定します。InputStream
の markSupported
メソッドは false
を返します。true
、そうでない場合は false
mark(int)
,
reset()
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.