JavaTM 2
Platform
Std. Ed. v1.4.0

java.io
クラス InputStreamReader

java.lang.Object
  |
  +--java.io.Reader
        |
        +--java.io.InputStreamReader
直系の既知のサブクラス:
FileReader

public class InputStreamReader
extends Reader

InputStreamReader はバイトストリームから文字ストリームへの橋渡しの役目を持ち、バイトデータを読み込んで、指定されたcharset を使用して文字に変換します。使用される文字エンコーディングは、名前で指定するか、明示的に渡すか、またはプラットフォームのデフォルトの文字エンコーディングをそのまま使うこともできます。

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

変換効率を最高にするには、次のような方法で、BufferedReader の内部に InputStreamReader をラップすることを考慮してください。

 BufferedReader in
   = new BufferedReader(new InputStreamReader(System.in));
 

導入されたバージョン:
JDK1.1
関連項目:
BufferedReader, InputStream, Charset

フィールドの概要
 
クラス java.io.Reader から継承したフィールド
lock
 
コンストラクタの概要
InputStreamReader(InputStream in)
          デフォルトの文字エンコーディングを使う InputStreamReader を作成します。
InputStreamReader(InputStream in, Charset cs)
          与えられた文字エンコーディングを使う InputStreamReader を作成します。
InputStreamReader(InputStream in, CharsetDecoder dec)
          与えられた文字エンコーディングデコーダを使う InputStreamReader を作成します。
InputStreamReader(InputStream in, String charsetName)
          指定された文字エンコーディングを使う InputStreamReader を作成します。
 
メソッドの概要
 void close()
          ストリームを閉じます。
 String getEncoding()
          このストリームで使用される文字エンコーディングの名前を返します。
 int read()
          単一の文字を読み込みます。
 int read(char[] cbuf, int offset, int length)
          配列の一部に文字を読み込みます。
 boolean ready()
          ストリームが読み込み可能な状態かどうかを通知します。
 
クラス java.io.Reader から継承したメソッド
mark, markSupported, read, reset, skip
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

InputStreamReader

public InputStreamReader(InputStream in)
デフォルトの文字エンコーディングを使う 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 - 文字エンコーディング
導入されたバージョン:
1.4

InputStreamReader

public InputStreamReader(InputStream in,
                         CharsetDecoder dec)
与えられた文字エンコーディングデコーダを使う InputStreamReader を作成します。

パラメータ:
in - InputStream
dec - 文字エンコーディングデコーダ
導入されたバージョン:
1.4
メソッドの詳細

getEncoding

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

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

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

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

read

public int read()
         throws IOException
単一の文字を読み込みます。

オーバーライド:
クラス Reader 内の read
戻り値:
読み込まれた文字。ストリームの終わりに達した場合は -1
例外:
IOException - 入出力エラーが発生した場合

read

public int read(char[] cbuf,
                int offset,
                int length)
         throws IOException
配列の一部に文字を読み込みます。

定義:
クラス Reader 内の read
パラメータ:
cbuf - 転送先バッファ
offset - 文字の格納開始オフセット
length - 読み込む文字の最大数
戻り値:
読み込まれた文字数。ストリームの終わりに達した場合は -1
例外:
IOException - 入出力エラーが発生した場合

ready

public boolean ready()
              throws IOException
ストリームが読み込み可能な状態かどうかを通知します。InputStreamReader は、入力バッファが空白ではないか、または基本となるバイトストリームからバイトデータを読み込める状態のときに読み込み可能です。

オーバーライド:
クラス Reader 内の ready
戻り値:
次の read() が入力をブロックしないのが確実な場合は true、そうでない場合は false。false が返されても、次の読み込みが確実にブロックするというわけでない
例外:
IOException - 入出力エラーが発生した場合

close

public void close()
           throws IOException
ストリームを閉じます。

定義:
クラス Reader 内の close
例外:
IOException - 入出力エラーが発生した場合

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.