モジュール java.base
パッケージ java.io

クラスReader

java.lang.Object
java.io.Reader
すべての実装されたインタフェース:
Closeable, AutoCloseable, Readable
直系の既知のサブクラス:
BufferedReader, CharArrayReader, FilterReader, InputStreamReader, PipedReader, StringReader

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
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected Object
    このストリームに対する処理の同期に使用するオブジェクトです。
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    リーダー自体でクリティカル・セクションが同期する文字ストリーム・リーダーを新しく作成します。
    protected
    Reader​(Object lock)
    指定されたオブジェクトでクリティカル・セクションが同期する文字ストリーム・リーダーを新しく作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    abstract void
    ストリームを閉じて、それに関連するすべてのシステム・リソースを解放します。
    void
    mark​(int readAheadLimit)
    ストリームの現在位置にマークを設定します。
    boolean
    このストリームがmark()オペレーションをサポートするかどうかを判定します。
    static Reader
    文字を読み取らない新しいReaderを返します。
    int
    単一の文字を読み込みます。
    int
    read​(char[] cbuf)
    配列に文字を読み込みます。
    abstract int
    read​(char[] cbuf, int off, int len)
    配列の一部に文字を読み込みます。
    int
    read​(CharBuffer target)
    指定された文字バッファに文字列を読み込みます。
    boolean
    このストリームが読込み可能かどうかを判定します。
    void
    ストリームをリセットします。
    long
    skip​(long n)
    文字をスキップします。
    long
    このリーダーからすべての文字を読み込み、指定されたライターに読み込まれた順番で書き込みます。

    クラス 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 - 同期するオブジェクト。
  • メソッドの詳細

    • 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が負の場合、またはlencbuf.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 - outnullである場合
      導入されたバージョン:
      10