クラスReader
- すべての実装されたインタフェース:
Closeable,AutoCloseable,Readable
- 直系の既知のサブクラス:
BufferedReader,CharArrayReader,FilterReader,InputStreamReader,PipedReader,StringReader
-
フィールドのサマリー
フィールド -
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明abstract voidclose()ストリームを閉じて、それに関連するすべてのシステム・リソースを解放します。voidmark(int readAheadLimit) ストリームの現在位置にマークを設定します。booleanこのストリームがmark()オペレーションをサポートするかどうかを判定します。static Reader文字を読み取らない新しいReaderを返します。static Readerof(CharSequence cs) CharSequenceから文字を読み取るReaderを返します。intread()単一の文字を読み込みます。intread(char[] cbuf) 配列に文字を読み込みます。abstract intread(char[] cbuf, int off, int len) 配列の一部に文字を読み込みます。intread(CharBuffer target) 指定されたcharバッファにcharを読み込みます。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
-
of
public static Reader of(CharSequence cs) CharSequenceから文字を読み取るReaderを返します。 リーダーは最初に開かれ、読み取りはシーケンスの最初の文字から始まります。返されるリーダーは、
mark()およびreset()操作をサポートします。結果として生成されるリーダーは、複数の同時スレッドで使用しても安全ではありません。 リーダーを複数のスレッドで使用する場合は、適切な同期によって制御する必要があります。
リーダーが開いている間にシーケンスが変わった場合(長さが変わった場合など)、動作は未定義です。
- パラメータ:
cs-CharSequence:文字ストリームを指定します。- 戻り値:
csから文字を読み取るReader- スロー:
NullPointerException-csがnullの場合- 導入されたバージョン:
- 24
-
read
public int read(CharBuffer target) throws IOException 指定されたcharバッファにcharを読み込みます。 バッファは、put操作の結果により変更される以外は、文字列そのままのリポジトリとして使用されます。 バッファのフリッピング(反転)やリワインド(巻き戻し)は行われません。 指定された文字バッファのlengthがゼロの場合、文字は読み取られず、ゼロが返されます。- 定義:
read、インタフェースReadable- パラメータ:
target- charを読み込むバッファ- 戻り値:
- バッファに追加された文字数(ゼロの可能性あり)または -1(この文字のソースが最後の場合)
- スロー:
IOException- 入出力エラーが発生した場合NullPointerException- targetがnullの場合ReadOnlyBufferException- ターゲットが読取り専用バッファの場合(長さがゼロの場合でも)- 導入されたバージョン:
- 1.5
-
read
public int read() throws IOException単一の文字を読み込みます。 このメソッドは1文字が読み込まれるか、入出力エラーが発生するか、あるいはストリームの終わりに達するまでブロックします。有効な単一文字の入力をサポートするためのサブクラスでは、このメソッドをオーバーライドします。
- 戻り値:
- 0から65535 (
0x00-0xffff)の範囲の整数として読み取られる文字、またはストリームの終わりに達した場合は-1を読み取る文字 - スロー:
IOException- 入出力エラーが発生した場合
-
read
public int read(char[] cbuf) throws IOException 配列に文字を読み込みます。 このメソッドは入力の一部が有効になるか、入出力エラーが発生するか、あるいはストリームの終わりに達するまでブロックします。cbufの長さがゼロの場合、文字は読み取られず、0が返されます。そうしないと、少なくとも1文字の読取りが試行されます。 ストリームが終了しているため、使用できる文字がない場合、値-1が返されます。そうしないと、少なくとも1つの文字が読み取られ、cbufに格納されます。- パラメータ:
cbuf- 転送先バッファ- 戻り値:
- 読み込まれた文字数。ストリームの終わりに達した場合は -1
- スロー:
IOException- 入出力エラーが発生した場合
-
read
public abstract int read(char[] cbuf, int off, int len) throws IOException 配列の一部に文字を読み込みます。 このメソッドは入力の一部が有効になるか、入出力エラーが発生するか、あるいはストリームの終わりに達するまでブロックします。lenが0の場合、文字は読み取られず、0が返されます。そうしないと、少なくとも1文字の読取りが試行されます。 ストリームが終了しているため、使用できる文字がない場合、値-1が返されます。そうしないと、少なくとも1つの文字が読み取られ、cbufに格納されます。- パラメータ:
cbuf- 転送先バッファoff- 文字の格納開始オフセットlen- 読み込む文字の最大数- 戻り値:
- 読み込まれた文字数。ストリームの終わりに達した場合は -1
- スロー:
IndexOutOfBoundsException-offが負、lenが負、またはlenがcbuf.length - offより大きい場合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がスローされます。 すでに閉じられているストリームを閉じても、何の影響もありません。- 定義:
close、インタフェースAutoCloseable- 定義:
close、インタフェースCloseable- スロー:
IOException- 入出力エラーが発生した場合
-
transferTo
public long transferTo(Writer out) throws IOException このリーダーからすべての文字を読み込み、指定されたライターに読み込まれた順番で書き込みます。 戻ってくると、このリーダーはストリームの最後にあります。 このメソッドは、リーダーまたはライターのいずれも閉じません。このメソッドは、リーダーからの無期限読み取り、またはライターへの書き込みをブロックすることがあります。 リーダーまたはライター(あるいはその両方)が「非同期クローズ」の場合、または転送中にスレッドが中断された場合の動作は、非常にリーダーおよびライター固有であるため、指定されません。
転送される合計文字数がLong.MAX_VALUEより大きい場合、
Long.MAX_VALUEが返されます。I/Oエラーがリーダーからの読取りまたはライターへの書込みで発生した場合、一部の文字の読取りまたは書込み後にエラーが発生することがあります。 その結果、リーダーはストリームの終わりにいなくてもよく、一方または両方のストリームは不整合な状態にあってもよい。 I/Oエラーが発生した場合は、両方のストリームをすぐに閉じることを強くお薦めします。
- パラメータ:
out- ライター、非null- 戻り値:
- 転送された文字数
- スロー:
IOException- 読み取りまたは書込み中に入出力エラーが発生した場合。NullPointerException-outがnullである場合- 導入されたバージョン:
- 10
-