JavaTM 2 Platform
Standard Ed. 5.0

java.io
クラス Reader

java.lang.Object
  上位を拡張 java.io.Reader
すべての実装されたインタフェース:
Closeable, Readable
直系の既知のサブクラス:
BufferedReader, CharArrayReader, FilterReader, InputStreamReader, PipedReader, StringReader

public abstract class Reader
extends Object
implements Readable, Closeable

文字ストリームを読み込むための抽象クラスです。サブクラスで実装する必要のあるメソッドは、read(char[], int, int) と close() だけです。ただし、ほとんどのサブクラスでは、効率を良くするかまたは機能を追加する (またはその両方) ために、ここで定義するメソッドの一部をオーバーライドします。

導入されたバージョン:
JDK1.1
関連項目:
BufferedReader, LineNumberReader, CharArrayReader, InputStreamReader, FileReader, FilterReader, PushbackReader, PipedReader, StringReader, Writer

フィールドの概要
protected  Object lock
          このストリームで操作を同期させるのに使うオブジェクトです。
 
コンストラクタの概要
protected Reader()
          そのクリティカルなセクションがリーダ自体で同期する、新しい文字ストリームリーダを作成します。
protected Reader(Object lock)
          そのクリティカルなセクションが指定されたオブジェクトで同期する、新しい文字ストリームリーダを作成します。
 
メソッドの概要
abstract  void close()
          ストリームを閉じます。
 void mark(int readAheadLimit)
          ストリームの現在の位置にマークを設定します。
 boolean markSupported()
          このストリームが mark() オペレーションをサポートするかどうかを判定します。
 int read()
          単一文字を読み込みます。
 int read(char[] cbuf)
          配列に文字を読み込みます。
abstract  int read(char[] cbuf, int off, int len)
          配列の一部に文字を読み込みます。
 int read(CharBuffer target)
          指定された文字バッファに文字を読み込もうとします。
 boolean ready()
          このストリームが読み込み可能かどうかを判定します。
 void reset()
          ストリームをリセットします。
 long skip(long n)
          文字をスキップします。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

lock

protected Object lock
このストリームで操作を同期させるのに使うオブジェクトです。効率を良くするため、文字ストリームオブジェクトでは、ほかのオブジェクトを使ってクリティカルセクションを保護することができます。そのため、サブクラスでは、this や同期メソッドではなく、このフィールドのオブジェクトを使用します。

コンストラクタの詳細

Reader

protected Reader()
そのクリティカルなセクションがリーダ自体で同期する、新しい文字ストリームリーダを作成します。


Reader

protected Reader(Object lock)
そのクリティカルなセクションが指定されたオブジェクトで同期する、新しい文字ストリームリーダを作成します。

パラメータ:
lock - 同期するオブジェクト
メソッドの詳細

read

public int read(CharBuffer target)
         throws IOException
指定された文字バッファに文字を読み込もうとします。バッファは現状の文字のリポジトリとして使用されます。変更されるのは入力操作の結果のみです。バッファの反転や巻き返しは行われません。

定義:
インタフェース Readable 内の read
パラメータ:
target - 文字を読み込むバッファ
戻り値:
バッファに追加された文字数。文字のソースの終わりに達した場合は -1
例外:
IOException - 入出力エラーが発生した場合
NullPointerException - ターゲットが null の場合
ReadOnlyBufferException - ターゲットが読み取り専用のバッファの場合

read

public int read()
         throws IOException
単一文字を読み込みます。このメソッドは、文字が読み込まれるか、入出力エラーが発生するか、あるいはストリームの終わりに達するまでブロックします。

有効な単一文字の入力をサポートするためのサブクラスでは、このメソッドをオーバーライドします。

戻り値:
0 〜 65535 (0x00-0xffff) の範囲の整数としての、読み込まれた文字。ストリームの終わりに達した場合は -1
例外:
IOException - 入出力エラーが発生した場合

read

public int read(char[] cbuf)
         throws IOException
配列に文字を読み込みます。このメソッドは、文字が読み込まれるか、入出力エラーが発生するか、あるいはストリームの終わりに達するまでブロックします。

パラメータ:
cbuf - 転送先バッファ
戻り値:
読み込まれた文字数。ストリームの終わりに達した場合は -1
例外:
IOException - 入出力エラーが発生した場合

read

public abstract int read(char[] cbuf,
                         int off,
                         int len)
                  throws IOException
配列の一部に文字を読み込みます。このメソッドは、文字が読み込まれるか、入出力エラーが発生するか、あるいはストリームの終わりに達するまでブロックします。

パラメータ:
cbuf - 転送先バッファ
off - 文字の格納開始オフセット
len - 読み込む文字の最大数
戻り値:
読み込まれた文字数。ストリームの終わりに達した場合は -1
例外:
IOException - 入出力エラーが発生した場合

skip

public long skip(long n)
          throws IOException
文字をスキップします。このメソッドは、文字が読み込まれるか、入出力エラーが発生するか、あるいはストリームの終わりに達するまでブロックします。

パラメータ:
n - スキップする文字数
戻り値:
実際にスキップした文字数
例外:
IllegalArgumentException - n が負の値の場合
IOException - 入出力エラーが発生した場合

ready

public boolean ready()
              throws IOException
このストリームが読み込み可能かどうかを判定します。

戻り値:
次の read() が入力をブロックしないのが確実な場合は true、そうでない場合は false。false が返されても、次の読み込みが確実にブロックするというわけでない
例外:
IOException - 入出力エラーが発生した場合

markSupported

public boolean markSupported()
このストリームが mark() オペレーションをサポートするかどうかを判定します。デフォルト実装は常に false を返します。サブクラスはこのメソッドをオーバーライドします。

戻り値:
このストリームが mark オペレーションをサポートする場合に限り true

mark

public void mark(int readAheadLimit)
          throws IOException
ストリームの現在の位置にマークを設定します。以降の reset() の呼び出しでは、ストリームをこの位置に配置しようとします。すべての文字入力ストリームで mark() オペレーションがサポートされているわけではありません。

パラメータ:
readAheadLimit - マークを保持しながら読み込むことができる文字数の上限。この数の文字を読み込んだあとでストリームをリセットしようとすると失敗する場合がある
例外:
IOException - ストリームが mark() をサポートしない場合、またはその他の入出力エラーが発生した場合

reset

public void reset()
           throws IOException
ストリームをリセットします。ストリームにマークが設定されていると、そのマークに再配置しようとします。マークが設定されていなければ、開始位置に再配置するなどの、個々のストリームに適したなんらかの方法でリセットを試みます。すべての文字入力ストリームで reset() オペレーションがサポートされているわけではありません。また、mark() をサポートせずに reset() をサポートするものもあります。

例外:
IOException - ストリームにマークが設定されなかった場合、またはマークの設定が無効になった場合、またはストリームが reset() をサポートしない場合、または他の入出力エラーが発生した場合

close

public abstract void close()
                    throws IOException
ストリームを閉じます。ストリームを一度閉じて、以降 read()、ready()、mark()、または reset() を呼び出すと、IOException がスローされます。ただし、前に閉じたストリームを閉じても効果はありません。

定義:
インタフェース Closeable 内の close
例外:
IOException - 入出力エラーが発生した場合

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 も参照してください。