クラスInputStreamReader

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

public class InputStreamReader extends Reader
InputStreamReaderはバイト・ストリームから文字ストリームへの橋渡しの役目を持ちます。バイトを読み込み、指定されたcharsetを使用して文字にデコードします。 使用する文字セットは、名前で指定することも、明示的に指定することも、default charsetを使用することもできます。

InputStreamReaderのread()メソッドのいずれかを呼び出すたびに、ベースとなるバイト入力ストリームから1つ以上のバイトが読み込まれます。 バイトから文字への効率的な変換を可能にするために、現在の読込みオペレーションを満たすのに必要な量より多くのバイトをベースとなるストリームから先読みすることができます。

変換効率を最高にするには、BufferedReaderの内部にInputStreamReaderをラップすることを考慮してください。 たとえば、

    BufferedReader in = new BufferedReader(new InputStreamReader(anInputStream));

System.inから読み取るには、システム・プロパティ値stdin.encodingCharsetとして使用します。

    new InputStreamReader(System.in, System.getProperty("stdin.encoding"));

導入されたバージョン:
1.1
関連項目:
  • フィールドのサマリー

    クラスリーダーで宣言されたフィールド

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

    コンストラクタ
    コンストラクタ
    説明
    default charsetを使用するInputStreamReaderを作成します。
    指定された文字セットを使うInputStreamReaderを作成します。
    与えられた文字セットを使うInputStreamReaderを作成します。
    与えられた文字セット・デコーダを使うInputStreamReaderを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    ストリームを閉じて、それに関連するすべてのシステム・リソースを解放します。
    このストリームで使用される文字エンコーディングの名前を返します。
    int
    単一の文字を読み込みます。
    int
    read(char[] cbuf, int off, int len)
    配列の一部に文字を読み込みます。
    boolean
    このストリームが読込み可能かどうかを判定します。

    クラスReaderで宣言されたメソッド

    mark, markSupported, nullReader, of, read, read, readAllAsString, readAllLines, reset, skip, transferTo
    修飾子と型
    メソッド
    説明
    void
    mark(int readAheadLimit)
    ストリームの現在位置にマークを設定します。
    boolean
    このストリームがmark()オペレーションをサポートするかどうかを判定します。
    static Reader
    文字を読み取らない新しいReaderを返します。
    static Reader
    CharSequenceから文字を読み取るReaderを返します。
    int
    read(char[] cbuf)
    配列に文字を読み込みます。
    int
    read(CharBuffer target)
    指定されたcharバッファにcharを読み込みます。
    残りの文字をすべて文字列に読み込みます。
    残りの文字をすべてテキスト行として読み取ります。
    void
    ストリームをリセットします。
    long
    skip(long n)
    文字をスキップします。
    long
    このリーダーからすべての文字を読み込み、指定されたライターに読み込まれた順番で書き込みます。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • InputStreamReader

      public InputStreamReader(InputStream in)
      default charsetを使用するInputStreamReaderを作成します。
      パラメータ:
      in - InputStream
      関連項目:
    • InputStreamReader

      public InputStreamReader(InputStream in, String charsetName) throws UnsupportedEncodingException
      指定された文字セットを使うInputStreamReaderを作成します。
      パラメータ:
      in - InputStream
      charsetName - サポートされているcharsetの名前
      スロー:
      UnsupportedEncodingException - 指定された文字セットがサポートされていない場合
    • InputStreamReader

      public InputStreamReader(InputStream in, Charset cs)
      与えられた文字セットを使うInputStreamReaderを作成します。
      パラメータ:
      in - InputStream
      cs - charset
      導入されたバージョン:
      1.4
    • InputStreamReader

      public InputStreamReader(InputStream in, CharsetDecoder dec)
      与えられた文字セット・デコーダを使うInputStreamReaderを作成します。
      パラメータ:
      in - InputStream
      dec - 文字セット・デコーダ
      導入されたバージョン:
      1.4
  • メソッドの詳細

    • getEncoding

      public String getEncoding()
      このストリームで使用される文字エンコーディングの名前を返します。

      エンコーディングに互換名がある場合は、その名前を返します。互換名がない場合は、エンコーディングの正規名を返します。

      このインスタンスがInputStreamReader(InputStream, String)コンストラクタを使用して作成された場合、返される名前はエンコーディングに対して一意となり、そのコンストラクタに渡された名前とは異なることがあります。 ストリームが閉じている場合、このメソッドはnullを返します。

      戻り値:
      このエンコーディングの互換名。ストリームが閉じている場合はnull
      関連項目:
    • read

      public int read() throws IOException
      単一の文字を読み込みます。
      オーバーライド:
      read、クラスReader
      戻り値:
      読み込まれた文字。ストリームの終わりに達した場合は -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が負、またはlencbuf.length - offより大きい場合
      IOException - 入出力エラーが発生した場合
    • ready

      public boolean ready() throws IOException
      このストリームが読込み可能かどうかを判定します。 InputStreamReaderは、入力バッファが空白でない場合、またはベースとなるバイト・ストリームからバイト・データを読み込める状態である場合に読込み可能です。
      オーバーライド:
      ready、クラスReader
      戻り値:
      次のread()が入力をブロックしないことが確実な場合はtrue、そうでない場合はfalse。 falseが返されても、次の読込みが確実にブロックするというわけでない。
      スロー:
      IOException - 入出力エラーが発生した場合
    • close

      public void close() throws IOException
      次のクラスからコピーされた説明: Reader
      ストリームを閉じて、それに関連するすべてのシステム・リソースを解放します。 ストリームが閉じられたあとにread()、ready()、mark()、reset()、またはskip()を呼び出すと、IOExceptionがスローされます。 すでに閉じられているストリームを閉じても、何の影響もありません。
      定義:
      close、インタフェースAutoCloseable
      定義:
      close、インタフェースCloseable
      定義:
      close、クラスReader
      スロー:
      IOException - 入出力エラーが発生した場合