- 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 voidclose()ストリームを閉じて、それに関連するすべてのシステム・リソースを解放します。voidmark(int readAheadLimit)ストリームの現在位置にマークを設定します。booleanmarkSupported()このストリームがmark()オペレーションをサポートするかどうかを判定します。static ReadernullReader()文字を読み取らない新しいReaderを返します。intread()単一の文字を読み込みます。intread(char[] cbuf)配列に文字を読み込みます。abstract intread(char[] cbuf, int off, int len)配列の一部に文字を読み込みます。intread(CharBuffer target)指定された文字バッファに文字列を読み込みます。booleanready()このストリームが読込み可能かどうかを判定します。voidreset()ストリームをリセットします。longskip(long n)文字をスキップします。longtransferTo(Writer out)このリーダーからすべての文字を読み込み、指定されたライターに読み込まれた順番で書き込みます。
-
-
-
フィールドの詳細
-
lock
protected Object lock
このストリームに対する処理の同期に使用するオブジェクトです。 効率を良くするため、文字ストリーム・オブジェクトは、ほかのオブジェクトを使ってクリティカル・セクションを保護することができます。 そのため、サブクラスではthisではなくこのフィールドのオブジェクトを使用するか、同期化したメソッドを使用するようにしてください。
-
-
コンストラクタの詳細
-
Reader
protected Reader()
リーダー自体でクリティカル・セクションが同期する文字ストリーム・リーダーを新しく作成します。
-
Reader
protected Reader(Object lock)
指定されたオブジェクトでクリティカル・セクションが同期する文字ストリーム・リーダーを新しく作成します。- パラメータ:
lock- 同期するオブジェクト。
-
-
メソッドの詳細
-
nullReader
public static Reader nullReader()
文字を読み取らない新しいReaderを返します。 返されるストリームは、最初はオープンしています。 ストリームを閉じるには、close()メソッドを呼び出します。 後からclose()をコールしても効果はありません。ストリームがオープンしている間、
read()、read(char[])、read(char[], int, int)、read(Charbuffer)、ready()、skip(long)、およびtransferTo()の各メソッドは、ストリームの最後に達したかのようにすべて動作します。 ストリームが閉じられると、これらのメソッドはすべてIOExceptionをスローします。markSupported()メソッドはfalseを返します。mark()メソッドとreset()メソッドはIOExceptionをスローします。返された
Readerに対する操作の同期に使用されるobjectは指定されていません。- 戻り値:
- 文字のない
Reader - 導入されたバージョン:
- 11
-
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- 入出力エラーが発生した場合
-
transferTo
public long transferTo(Writer out) throws IOException
このリーダーからすべての文字を読み込み、指定されたライターに読み込まれた順番で書き込みます。 戻ってくると、このリーダーはストリームの最後にあります。 このメソッドは、リーダーまたはライターのいずれも閉じません。このメソッドは、リーダーからの無期限読み取り、またはライターへの書き込みをブロックすることがあります。 リーダーおよび/またはライターが「非同期クローズ」であるか、転送中にスレッドが中断した場合の動作は、リーダー・ライター固有のものであり、したがって指定されていません。
I/Oエラーがリーダーからの読取りまたはライターへの書込みで発生した場合、一部の文字の読取りまたは書込み後にエラーが発生することがあります。 その結果、リーダーはストリームの終わりにいなくてもよく、一方または両方のストリームは不整合な状態にあってもよい。 I/Oエラーが発生した場合、両方のストリームを即時に閉じることを強くお勧めします。
- パラメータ:
out- 作家、非null- 戻り値:
- 転送された文字数
- 例外:
IOException- 読み取りまたは書込み中に入出力エラーが発生した場合。NullPointerException-outがnullである場合- 導入されたバージョン:
- 10
-
-