nanoJBlend

java.io
クラス InputStream

java.lang.Object
  上位を拡張 java.io.InputStream
直系の既知のサブクラス:
ByteArrayInputStream, FilterInputStream

public abstract class InputStream
extends Object

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
 

コンストラクタの詳細

InputStream

public InputStream()
InputStream を生成します。

メソッドの詳細

available

public int available()
              throws IOException
この入力ストリームに対して、次のメソッド呼び出しによってブロックされることなく読みだすかまたはスキップすることが可能なバイト数を返します。

次のメソッド呼び出しは同じスレッドから呼び出されることもあれば、別のスレッドから呼び出されることもあります。

このメソッドはサブクラスによってオーバーライドされる必要があります。 InputStream クラスの available メソッドは常に0を返します。

戻り値:
この入力ストリームからブロックすることなしに読み出し可能なバイト数
例外:
IOException - I/Oエラーが発生した場合

close

public void close()
           throws IOException
この入力ストリームをクローズして、関連するリソースを解放します。

InputStream クラスの close メソッドは何もしません。

例外:
IOException - I/Oエラーが発生した場合

mark

public void mark(int readlimit)
この入力ストリーム中の現在のアクセス位置をマークします。 以降 reset メソッドを呼ぶと、このストリームのアクセス位置を最後にマークされた位置にリセットします。 これにより同じバイトを再読み込みできます。

引数 readlimit には、マークされたアクセス位置が無効になるまで、最低限読み出し可能にする必要のあるバイト数を指定します。

mark メソッドに関する汎用規約は、markSupportedtrue を返す場合、mark が呼び出された以後は、 reset が呼び出されたらストリームはいつも同じバイトデータを返すことができるように準備することです。 ただし、 reset が呼び出される前に readlimit を超えるバイトデータが読みだされたら、ストリームはバイトデータを記憶しておく必要はありません。

InputStream クラスの mark メソッドは何もしません。

パラメータ:
readlimit - マークされたアクセス位置が無効になるまで読み出し可能とする最大データバイト数

markSupported

public boolean markSupported()
この入力ストリームが mark メソッドと reset メソッドをサポートしているかどうかを返します。 mark メソッドと reset メソッドをサポートしているかどうかは入力ストリームインスタンスの不変な属性です。 InputStream クラスの markSupported メソッドは false を返します。

戻り値:
このストリームが mark メソッドと reset メソッドをサポートしている場合は true 、サポートしていない場合は false

read

public abstract int read()
                  throws IOException
入力ストリームから次のバイトを読み込みます。 バイトは int で返され、0 から 255 までの値を持ちます。 もしストリームの終端に達しているためにバイトデータが読み込めない場合は -1 を返します。 このメソッドは入力データが得られるか、ストリームの終端を検出するか、または例外が発生するまでブロックします。

サブクラスでこのメソッドの実装を提供する必要があります。

戻り値:
次のバイトデータ、またはストリームの終端に到達した場合は -1
例外:
IOException - I/Oエラーが発生した場合

read

public int read(byte[] b)
         throws IOException
入力ストリームから数バイトを読み込み、配列のバッファ b に格納します。 実際に読み込んだバイト数は整数値で返されます。 このメソッドは入力データが得られるか、ストリームの終端を検出するか、または例外が発生するまでブロックします。

bnull の場合、 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 - データを格納するバッファ
戻り値:
バッファに格納したバイトデータのバイト数、ストリームの終端に到達したためにデータがない場合は -1
例外:
IOException - I/Oエラーが発生した場合
NullPointerException - bnull の場合

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
最大 len バイトまでこの入力ストリームから読み込み配列に格納します。 len バイトまで読み込むように試行されますが、少ないバイト数だけ読み込まれることもあります。 実際に読み込んだバイト数は整数値で返されます。

このメソッドは入力データが得られるか、ストリームの終端を検出するか、または例外が発生するまでブロックします

bnull の場合、 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 - 読み込むバイトデータの最大長
戻り値:
バッファに格納されたバイトデータの長さ、ストリームの終端に到達したためにデータがない場合は -1
例外:
IOException - I/Oエラーが発生した場合
NullPointerException - bnull の場合

reset

public void reset()
           throws IOException
ストリームの読み出しポジションを mark メソッドが最後に呼び出された時点の位置に戻します。

以下に reset の汎用規約を示します。

InputStream クラスの reset メソッドは IOException をスローする以外の処理は実行しません。

例外:
IOException - ストリームがマークされていない場合、またはマークが無効になっている場合

skip

public long skip(long n)
          throws IOException
この入力ストリームから n バイト分をスキップして廃棄します。 skip メソッドは、指定したより少ないバイト数(場合によっては0バイト)しかスキップしない場合があり得ます。 n バイトをスキップする前にストリームの終端に到達する場合はその一例です。 実際にスキップされたバイト数が返されます。 n が負値の場合、スキップは実行されません。

InputStream クラスの skip メソッドの実装は、n バイトを読み終わるか、またはストリームの終端に達するまで read メソッドを繰り返します。

パラメータ:
n - スキップするバイト数
戻り値:
実際にスキップしたバイト数
例外:
IOException - I/Oエラーが発生した場合

nanoJBlend

Copyright 2005-2013 Aplix and/or its affiliates. All rights reserved. Aplix Confidential and Restricted.
NTT DOCOMO and Hitachi Kokusai Electric Confidential