|
nanoJBlend | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.io.InputStream
public abstract class InputStream
InputStream クラスは全てのバイト入力ストリームのスーパークラスです。
| コンストラクタの概要 | |
|---|---|
InputStream()
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 から継承されたメソッド |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait |
| コンストラクタの詳細 |
|---|
public InputStream()
InputStream を生成します。
| メソッドの詳細 |
|---|
public int available()
throws IOException
次のメソッド呼び出しは同じスレッドから呼び出されることもあれば、別のスレッドから呼び出されることもあります。
このメソッドはサブクラスによってオーバーライドされる必要があります。
InputStream クラスの available メソッドは常に0を返します。
IOException - I/Oエラーが発生した場合
public void close()
throws IOException
InputStream クラスの close メソッドは何もしません。
IOException - I/Oエラーが発生した場合public void mark(int readlimit)
reset メソッドを呼ぶと、このストリームのアクセス位置を最後にマークされた位置にリセットします。
これにより同じバイトを再読み込みできます。
引数 readlimit には、マークされたアクセス位置が無効になるまで、最低限読み出し可能にする必要のあるバイト数を指定します。
mark メソッドに関する汎用規約は、markSupported が true を返す場合、mark が呼び出された以後は、 reset が呼び出されたらストリームはいつも同じバイトデータを返すことができるように準備することです。
ただし、 reset が呼び出される前に readlimit を超えるバイトデータが読みだされたら、ストリームはバイトデータを記憶しておく必要はありません。
InputStream クラスの mark メソッドは何もしません。
readlimit - マークされたアクセス位置が無効になるまで読み出し可能とする最大データバイト数public boolean markSupported()
mark メソッドと reset メソッドをサポートしているかどうかを返します。
mark メソッドと reset メソッドをサポートしているかどうかは入力ストリームインスタンスの不変な属性です。
InputStream クラスの markSupported メソッドは false を返します。
mark メソッドと reset メソッドをサポートしている場合は true 、サポートしていない場合は false
public abstract int read()
throws IOException
int で返され、0 から 255 までの値を持ちます。
もしストリームの終端に達しているためにバイトデータが読み込めない場合は -1 を返します。
このメソッドは入力データが得られるか、ストリームの終端を検出するか、または例外が発生するまでブロックします。
サブクラスでこのメソッドの実装を提供する必要があります。
-1
IOException - I/Oエラーが発生した場合
public int read(byte[] b)
throws IOException
b に格納します。
実際に読み込んだバイト数は整数値で返されます。
このメソッドは入力データが得られるか、ストリームの終端を検出するか、または例外が発生するまでブロックします。
b が null の場合、 NullPointerException がスローされます。
もし b の長さがゼロの場合、バイトデータは読み込まれないで 0 が返されます。
これらの条件以外では少なくとも 1 バイトの読み込みを試みます。
ストリームの終端に達しており読み込むデータがない場合は -1 が返されます。
そうでなければ少なくとも 1 バイト読み込まれて b に格納されます。
最初に読み込まれたバイトは要素 b[0] に格納され、次は b[1] と続いて格納されます。
読み込まれるバイトデータの数は最大で b.length に等しくなります。
読み込まれたバイト数が k であるとすると、データは要素 b[0] から b[k-1] まで格納され、 b[k] から b[b.length-1] までは影響を受けません。
終端に到達している以外の理由により最初のバイトデータを読み込めない場合、 IOException がスローされます。
特に入力ストリームがクローズされている場合には IOException がスローされます。
InputStream クラスの read(b) メソッドは次の呼び出しを行います:
read(b, 0, b.length)
b - データを格納するバッファ
IOException - I/Oエラーが発生した場合
NullPointerException - b が null の場合
public int read(byte[] b,
int off,
int len)
throws IOException
len バイトまでこの入力ストリームから読み込み配列に格納します。
len バイトまで読み込むように試行されますが、少ないバイト数だけ読み込まれることもあります。
実際に読み込んだバイト数は整数値で返されます。
このメソッドは入力データが得られるか、ストリームの終端を検出するか、または例外が発生するまでブロックします
b が null の場合、 NullPointerException がスローされます。
off が負値の場合、 len が負値の場合、または off+len が配列 b の長さより大きい場合、 IndexOutOfBoundsException がスローされます。
len がゼロの場合、バイトデータは読み込まれないで 0 が返されます。
そうでなければ少なくとも 1 バイトの読み込みを試みます。
ストリームの終端に達しており読み込むデータがない場合は -1 が返されます。
そうでなければ少なくとも 1 バイト読み込まれて b に格納されます。
最初に読み込まれたバイトは要素 b[off] に格納され、次は b[off+1] と続いて格納されます。
読み込まれるバイトデータの数は最大で len に等しくなります。
読み込まれたバイト数が k であるとすると、データは要素 b[off] から b[off+k-1] まで格納され、 b[off+k]から b[b.length-1] までは影響を受けません。
いかなる場合においても b[0] から b[off-1] までと b[off+len] から b[b.length-1] は影響を受けません。
終端に到達している以外の理由により最初のバイトデータを読み込めない場合、 IOException がスローされます。
特に入力ストリームがクローズされている場合には IOException がスローされます。
InputStream クラスの read(byte[], int, int) メソッドの実装では、単純に read() を繰り返して呼び出します。
もし最初の read() の呼び出しで IOException がスローされた場合、その IOException がそのままスローされます。
2回目以降の read() への呼び出しで IOException がスローされた場合、例外はキャッチされてストリーム終端に到達したかのように扱われます。
すなわち、その時点までに読み込まれたデータは b に格納されて、例外が発生するまでに読み込まれたバイトデータの長さが返されます。
b - 読み込んだデータを格納するバッファoff - データを書き込み始める、配列 b のオフセット位置len - 読み込むバイトデータの最大長
IOException - I/Oエラーが発生した場合
NullPointerException - b が null の場合
public void reset()
throws IOException
mark メソッドが最後に呼び出された時点の位置に戻します。
以下に reset の汎用規約を示します。
markSupported メソッドが true を返す場合:
mark メソッドがよびだされていない、または mark メソッドが最後に呼び出されてからストリームから読み込まれたバイトデータの長さが mark メソッドに指定された引数 readlimit よりも大きい場合、 IOException がスローされる可能性があります。
IOException がスローされない場合、次のような状態になります:
mark メソッドの最後の呼び出し以後に(または mark メソッドが呼び出されていない場合、ストリームの始端から)読み込まれたすべてのバイトデータは、 reset の呼び出しに続く read メソッドの呼び出しで再度呼び出し側に渡され、 reset メソッドがよびだされた時点では次の読み込みデータになっていたであろうデータが続きます。
markSupported メソッドが false を返す場合:
reset を呼び出すと IOException がスローされる可能性があります。
IOException がスローされない場合、ストリームは入力ストリームの個別のタイプおよびどのようにストリームが生成されたかに依存する、固定された状態にリセットされます。
reset の呼び出しに続く read メソッドの呼び出しに提供されるバイトデータは個々の入力ストリームに依存します。
InputStream クラスの reset メソッドは IOException をスローする以外の処理は実行しません。
IOException - ストリームがマークされていない場合、またはマークが無効になっている場合
public long skip(long n)
throws IOException
n バイト分をスキップして廃棄します。
skip メソッドは、指定したより少ないバイト数(場合によっては0バイト)しかスキップしない場合があり得ます。
n バイトをスキップする前にストリームの終端に到達する場合はその一例です。
実際にスキップされたバイト数が返されます。
n が負値の場合、スキップは実行されません。
InputStream クラスの skip メソッドの実装は、n バイトを読み終わるか、またはストリームの終端に達するまで read メソッドを繰り返します。
n - スキップするバイト数
IOException - I/Oエラーが発生した場合
|
nanoJBlend | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||