JavaTM Platform
Standard Ed. 6

java.io
クラス FilterInputStream

java.lang.Object
  上位を拡張 java.io.InputStream
      上位を拡張 java.io.FilterInputStream
すべての実装されたインタフェース:
Closeable
直系の既知のサブクラス:
BufferedInputStream, CheckedInputStream, CipherInputStream, DataInputStream, DeflaterInputStream, DigestInputStream, InflaterInputStream, LineNumberInputStream, ProgressMonitorInputStream, PushbackInputStream

public class FilterInputStream
extends InputStream

FilterInputStream は、データの基本的なソースとして使用するためのその他の入力ストリームを格納します。データを途中で変換することや、追加機能を提供することもあります。FilterInputStream クラスそのものが、格納されている入力ストリームにすべての要求を渡すバージョンによって、InputStream のすべてのメソッドを単純にオーバーライドします。FilterInputStream のサブクラスは、これらのメソッドの一部をさらにオーバーライドすることができ、追加のメソッドやフィールドを提供することもできます。

導入されたバージョン:
JDK1.0

フィールドの概要
protected  InputStream in
          フィルタ処理される入力ストリームです。
 
コンストラクタの概要
protected FilterInputStream(InputStream in)
          あとで使用できるように引数 inthis.in フィールドに割り当てることによって、FilterInputStream を作成します。
 
メソッドの概要
 int available()
          この入力ストリームのメソッドの次の呼び出し側によって、ブロックせずにこの入力ストリームから読み込むことができる (またはスキップできる) 推定バイト数を返します。
 void close()
          この入力ストリームを閉じて、そのストリームに関連するすべてのシステムリソースを解放します。
 void mark(int readlimit)
          この入力ストリームの現在位置にマークを設定します。
 boolean markSupported()
          入力ストリームが markreset メソッドをサポートしているかどうかを判定します。
 int read()
          この入力ストリームからデータの次のバイトを読み込みます。
 int read(byte[] b)
          最大 byte.length バイトまでのデータを、この入力ストリームからバイト配列に読み込みます。
 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
 

フィールドの詳細

in

protected volatile InputStream in
フィルタ処理される入力ストリームです。

コンストラクタの詳細

FilterInputStream

protected FilterInputStream(InputStream in)
あとで使用できるように引数 inthis.in フィールドに割り当てることによって、FilterInputStream を作成します。

パラメータ:
in - 基本となる入力ストリーム。このインスタンスが基本となるストリームなしで生成される場合は null
メソッドの詳細

read

public int read()
         throws IOException
この入力ストリームからデータの次のバイトを読み込みます。値のバイトは、0255 の範囲の int として返されます。ストリームの終わりに達したために読み込むバイトがない場合は、値 -1 が返されます。入力データが読み込めるようになるか、ファイルの終わりが検出されるか、または例外が発生するまで、このメソッドはブロックされます。

このメソッドは単純に in.read() を実行し、その結果を返します。

定義:
クラス InputStream 内の read
戻り値:
データの次のバイト。ストリームの終わりに達した場合は -1
例外:
IOException - 入出力エラーが発生した場合
関連項目:
in

read

public int read(byte[] b)
         throws IOException
最大 byte.length バイトまでのデータを、この入力ストリームからバイト配列に読み込みます。このメソッドは、入力の一部が利用できるようになるまでブロックします。

このメソッドは単純に read(b, 0, b.length) の呼び出しを実行し、その結果を返します。代わりに in.read(b) が実行されないようにしてください。FilterInputStream の特定のサブクラスは、実際に使用されている実装方法に依存します。

オーバーライド:
クラス InputStream 内の read
パラメータ:
b - データの読み込み先のバッファ
戻り値:
バッファに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は -1
例外:
IOException - 入出力エラーが発生した場合
関連項目:
read(byte[], int, int)

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
最大 len バイトまでのデータを、この入力ストリームからバイト配列に読み込みます。len が 0 でない場合、このメソッドは入力の一部が利用できるようになるまでブロックします。そうでない場合、バイトは読み込まれず、0 が返されます。

このメソッドは単純に in.read(b, off, len) を実行し、その結果を返します。

オーバーライド:
クラス InputStream 内の read
パラメータ:
b - データの読み込み先のバッファ
off - 転送先の配列 b 内での開始オフセット
len - 読み込まれる最大バイト数
戻り値:
バッファに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は -1
例外:
NullPointerException - bnull の場合
IndexOutOfBoundsException - off が負の場合、len が負の場合、または lenb.length - off よりも大きい場合
IOException - 入出力エラーが発生した場合
関連項目:
in

skip

public long skip(long n)
          throws IOException
この入力ストリームから n バイト分をスキップおよび破棄します。さまざまな理由から、skip メソッドは指定よりも少ないバイト数しかスキップしないことがあります。0 の場合もあります。このスキップは複数の条件に起因する可能性がありますが、考えられる唯一の場合は、n バイトがスキップされる前にファイルの終わりに達した場合です。スキップされた実際のバイト数が返されます。n が負の場合、バイトはスキップされません。  

このクラスの skip メソッドはバイト配列を作成し、n バイトが読み込まれるまで、またはストリームの終わりに達するまで繰り返しその中に読み込みます。サブクラスでこのメソッドを実装する場合は、より効率的に実装してください。たとえば、実装はシークの機能に依存する可能性があります。

このメソッドは単純に in.skip(n) を実行します。

オーバーライド:
クラス InputStream 内の skip
パラメータ:
n - スキップするバイト数
戻り値:
実際にスキップされたバイト数
例外:
IOException - ストリームがシークをサポートしない場合、またはその他の入出力エラーが発生した場合

available

public int available()
              throws IOException
この入力ストリームのメソッドの次の呼び出し側によって、ブロックせずにこの入力ストリームから読み込むことができる (またはスキップできる) 推定バイト数を返します。次の呼び出し側は、同じスレッドの場合も別のスレッドの場合もあります。このような多数のバイトを 1 回で読み込んだりスキップしたりすることでブロックすることはありませんが、読み込むまたはスキップするバイト数が少なくなることがあります。

このメソッドが返すのは in.available() の結果です。

オーバーライド:
クラス InputStream 内の available
戻り値:
ブロックせずにこの入力ストリームから読み込むことができる (またはスキップできる) 推定バイト数
例外:
IOException - 入出力エラーが発生した場合

close

public void close()
           throws IOException
この入力ストリームを閉じて、そのストリームに関連するすべてのシステムリソースを解放します。このメソッドは単純に in.close() を実行します。

定義:
インタフェース Closeable 内の close
オーバーライド:
クラス InputStream 内の close
例外:
IOException - 入出力エラーが発生した場合
関連項目:
in

mark

public void mark(int readlimit)
この入力ストリームの現在位置にマークを設定します。これに続いて reset メソッドを呼び出すと、最後にマークが設定された位置にストリームを再設定するため、次回の読み込み操作では同じバイトから読み込むことになります。

引数 readlimit はこの入力ストリームに対して、マーク位置が無効になる前にこの引数が指定するバイト数を読み込むように指示します。

このメソッドは単純に in.mark(readlimit) を実行します。

オーバーライド:
クラス InputStream 内の mark
パラメータ:
readlimit - マーク位置が無効になる前に読み込み可能なバイトの最大リミット
関連項目:
in, reset()

reset

public void reset()
           throws IOException
このストリームの位置を、入力ストリームで最後に mark メソッドが呼び出されたときのマーク位置に再設定します。

このメソッドは単純に in.reset() を実行します。

ストリームのマークは、ストリームに何が含まれているかをチェックするために、データを少しだけ先読みする必要がある場合に使われます。これをもっとも容易に実行する方法は、一般的なパーサーを呼び出すことです。ストリームがパーサーで取り扱えるタイプであれば、これでうまく行きます。ストリームがこのようなタイプではない場合は、パーサーは失敗した時点で例外を発生させます。readlimit バイトの範囲内でこれが発生した場合は、外部のコードでストリームをリセットし、別のパーサーを呼び出すことができます。

オーバーライド:
クラス InputStream 内の reset
例外:
IOException - ストリームにマークが設定されていなかった場合、またはマークが無効になっていた場合
関連項目:
in, mark(int)

markSupported

public boolean markSupported()
入力ストリームが markreset メソッドをサポートしているかどうかを判定します。このメソッドは単純に in.markSupported() を実行します。

オーバーライド:
クラス InputStream 内の markSupported
戻り値:
ストリームが markreset メソッドをサポートするタイプの場合は true、そうでない場合は false
関連項目:
in, InputStream.mark(int), InputStream.reset()

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。