JavaTM Platform
Standard Ed. 6

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

文字ストリームを読み込むための abstract クラスです。サブクラスでの実装が必要なメソッドは、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
指定された文字バッファーに文字列を読み込みます。バッファーは、put 操作の結果により変更される以外は、文字列そのままのリポジトリとして使用されます。バッファーのフリッピング (反転) やリワインド (巻き戻し) は行われません。

定義:
インタフェース Readable 内の read
パラメータ:
target - 文字列を読み込むバッファー
戻り値:
バッファーに追加された文字の数。文字のソースが最後の位置にある場合は -1
例外:
IOException - 入出力エラーが発生した場合
NullPointerException - target が null の場合
ReadOnlyBufferException - target が読み取り専用バッファーの場合
導入されたバージョン:
1.5

read

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

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

戻り値:
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()、または skip() を呼び出すと、IOException がスローされます。すでに閉じられているストリームを閉じても、何の影響もありません。

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

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