- java.lang.Object
-
- java.io.Reader
-
- すべての実装されたインタフェース:
Closeable
,AutoCloseable
,Readable
- 直系の既知のサブクラス:
BufferedReader
,CharArrayReader
,FilterReader
,InputStreamReader
,PipedReader
,StringReader
,URLReader
public abstract class Reader extends Object implements Readable, Closeable
文字ストリームを読み込むための抽象クラスです。 サブクラスでの実装が必要なメソッドは、read(char[], int, int)とclose()だけです。 ただし、ほとんどのサブクラスは、効率性の向上または機能の追加、あるいはその両方のために、ここで定義されるメソッドの一部をオーバーライドします。- 導入されたバージョン:
- 1.1
- 関連項目:
BufferedReader
,LineNumberReader
,CharArrayReader
,InputStreamReader
,FileReader
,FilterReader
,PushbackReader
,PipedReader
,StringReader
,Writer
-
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 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)
文字をスキップします。
-
-
-
フィールドの詳細
-
lock
protected Object lock
このストリームに対する処理の同期に使用するオブジェクトです。 効率を良くするため、文字ストリーム・オブジェクトは、ほかのオブジェクトを使ってクリティカル・セクションを保護することができます。 そのため、サブクラスではthis
ではなくこのフィールドのオブジェクトを使用するか、同期化したメソッドを使用するようにしてください。
-
-
コンストラクタの詳細
-
Reader
protected Reader()
リーダー自体でクリティカル・セクションが同期する文字ストリーム・リーダーを新しく作成します。
-
Reader
protected Reader(Object lock)
指定されたオブジェクトでクリティカル・セクションが同期する文字ストリーム・リーダーを新しく作成します。- パラメータ:
lock
- 同期するオブジェクト。
-
-
メソッドの詳細
-
read
public int read(CharBuffer target) throws IOException
指定された文字バッファに文字列を読み込みます。 バッファは、put操作の結果により変更される以外は、文字列そのままのリポジトリとして使用されます。 バッファのフリッピング(反転)やリワインド(巻き戻し)は行われません。- 定義:
read
、インタフェース:Readable
- パラメータ:
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
- 入出力エラーが発生した場合IndexOutOfBoundsException
-off
が負の場合、またはlen
が負の場合、またはlen
がcbuf.length - off
より大きい場合
-
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がスローされます。 すでに閉じられているストリームを閉じても、何の影響もありません。- 定義:
close
、インタフェース:AutoCloseable
- 定義:
close
、インタフェース:Closeable
- 例外:
IOException
- 入出力エラーが発生した場合
-
-