java.lang.Object
java.io.Reader
java.io.CharArrayReader
- すべての実装されたインタフェース:
Closeable
,AutoCloseable
,Readable
public class CharArrayReader extends Reader
文字入力ストリームとして使用する文字バッファを実装します。
- 導入されたバージョン:
- 1.1
-
フィールドのサマリー
フィールド修飾子と型フィールド説明protected char[]
文字バッファです。protected int
このバッファの最後のインデックスです。protected int
バッファ内のマーク位置です。protected int
現在のバッファの位置です。 -
コンストラクタのサマリー
コンストラクタコンストラクタ説明CharArrayReader
(char[] buf) 指定された文字の配列からCharArrayReaderを作成します。CharArrayReader
(char[] buf, int offset, int length) 指定された文字の配列からCharArrayReaderを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明void
close()
ストリームを閉じて、それに関連するすべてのシステム・リソースを解放します。void
mark
(int readAheadLimit) ストリームの現在位置にマークを設定します。boolean
このストリームが、実行するmark()オペレーションをサポートするかどうかを通知します。int
read()
単一の文字を読み込みます。int
read
(char[] cbuf, int off, int len) 配列の一部に文字を読み込みます。boolean
ready()
このストリームが読込み可能かどうかを判定します。void
reset()
直前のマーク位置にストリームをリセットします。マークが設定されていない場合は、先頭位置にリセットします。long
skip
(long n) 文字をスキップします。クラスjava.io.Readerで宣言されたメソッド
nullReader, read, read, transferTo
-
フィールド詳細
-
buf
protected char[] buf文字バッファです。 -
pos
protected int pos現在のバッファの位置です。 -
markedPos
protected int markedPosバッファ内のマーク位置です。 -
count
protected int countこのバッファの最後のインデックスです。 このインデックス以上の有効なデータはありません。
-
-
コンストラクタの詳細
-
CharArrayReader
public CharArrayReader(char[] buf) 指定された文字の配列からCharArrayReaderを作成します。- パラメータ:
buf
- 入力バッファ(コピーされていない)
-
CharArrayReader
public CharArrayReader(char[] buf, int offset, int length) 指定された文字の配列からCharArrayReaderを作成します。結果の読者は、指定された
offset
で読み取りを開始します。 このリーダーから読み取ることができるchar
値の合計数は、length
またはbuf.length-offset
のいずれか小さい方になります。- パラメータ:
buf
- 入力バッファ(コピーされていない)offset
- 読み込む最初の文字オフセットlength
- 読み込む文字数- 例外:
IllegalArgumentException
-offset
が負またはbuf.length
より大きい場合、length
が負の場合、またはこれら2つの値の合計が負の場合。
-
-
メソッドの詳細
-
read
public int read() throws IOException単一の文字を読み込みます。- オーバーライド:
read
、クラスReader
- 戻り値:
- 0から65535 (
0x00-0xffff
)の範囲の整数として読み取られる文字、またはストリームの終わりに達した場合は-1を読み取る文字 - 例外:
IOException
- 入出力エラーが発生した場合
-
read
public int read(char[] cbuf, int off, int len) throws IOException 配列の一部に文字を読み込みます。len
が0の場合、文字は読み取られず、0
が返されます。そうしないと、少なくとも1文字の読取りが試行されます。 ストリームが終了しているため、使用できる文字がない場合、値-1
が返されます。そうしないと、少なくとも1つの文字が読み取られ、cbuf
に格納されます。- 定義:
read
、クラスReader
- パラメータ:
cbuf
- 転送先バッファoff
- 文字の格納開始オフセットlen
- 読み込む文字の最大数- 戻り値:
- 読み込まれた文字数。ストリームの終わりに達した場合は -1
- 例外:
IndexOutOfBoundsException
-off
が負、len
が負、またはlen
がcbuf.length - off
より大きい場合IOException
- 入出力エラーが発生した場合
-
skip
public long skip(long n) throws IOException 文字をスキップします。 このメソッドを呼び出す前にストリームがすでに終了している場合は、文字はスキップされず、ゼロが返されます。n
パラメータは、Reader
スーパー・クラスのskip
メソッドが例外をスローする場合があっても、負の値にできます。n
が負の場合、このメソッドは何もせずに0
を返します。- オーバーライド:
skip
、クラスReader
- パラメータ:
n
- スキップする文字数- 戻り値:
- 実際にスキップした文字数
- 例外:
IOException
- 入出力エラーが発生した場合
-
ready
public boolean ready() throws IOExceptionこのストリームが読込み可能かどうかを判定します。 文字配列のリーダーは、常に読込み可能です。- オーバーライド:
ready
、クラスReader
- 戻り値:
- 次のread()が入力をブロックしないことが確実な場合はtrue、そうでない場合はfalse。 falseが返されても、次の読込みが確実にブロックするというわけでない。
- 例外:
IOException
- 入出力エラーが発生した場合
-
markSupported
public boolean markSupported()このストリームが、実行するmark()オペレーションをサポートするかどうかを通知します。- オーバーライド:
markSupported
、クラスReader
- 戻り値:
- このストリームがmarkオペレーションをサポートする場合に限りtrue。
-
mark
public void mark(int readAheadLimit) throws IOException ストリームの現在位置にマークを設定します。 以降のreset()の呼出しでは、ストリームはこの位置に再配置されます。- オーバーライド:
mark
、クラスReader
- パラメータ:
readAheadLimit
- マークを保持しながら読み込むことができる文字数の上限。 ストリームには文字配列から入力されるので、実際の上限はない。そのため、この引数は無視される。- 例外:
IOException
- 入出力エラーが発生した場合
-
reset
public void reset() throws IOException直前のマーク位置にストリームをリセットします。マークが設定されていない場合は、先頭位置にリセットします。- オーバーライド:
reset
、クラスReader
- 例外:
IOException
- 入出力エラーが発生した場合
-
close
-