JavaTM 2 Platform
Standard Ed. 5.0

java.io
クラス FilterInputStream

java.lang.Object
  上位を拡張 java.io.InputStream
      上位を拡張 java.io.FilterInputStream
すべての実装されたインタフェース:
Closeable
直系の既知のサブクラス:
BufferedInputStream, CheckedInputStream, CipherInputStream, DataInputStream, 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 バイトのデータを読み込みます。このメソッドは、入力が可能になるまでブロックします。

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

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

skip

public long skip(long n)
          throws IOException
入力ストリームからのデータを n バイトだけスキップして破棄します。さまざまな理由から、skip メソッドは、指定されたよりも少ないバイト数 (0 の場合もある) しかスキップしないことがあります。実際にスキップしたバイト数を返します。

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

オーバーライド:
クラス InputStream 内の skip
パラメータ:
n - スキップするバイト数
戻り値:
実際にスキップされたバイト数
例外:
IOException - 入出力エラーが発生した場合

available

public int available()
              throws IOException
ブロックせずに入力ストリームから読み込むことができるバイト数を返します。

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

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

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 2 Platform
Standard Ed. 5.0

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

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