JavaでInputStreamReaderを使う方法を教えてください。

InputStreamReaderはJavaにおける、バイトストリームを読み込んで文字ストリームに変換するクラスです。バイトストリームを文字ストリームに変換することができ、また文字エンコーディングも指定可能です。

InputStreamReaderを使用する手順は以下の通りです。

  1. FileInputStreamやSocket.getInputStream()などと、InputStreamオブジェクトを作成します。
  2. InputStreamオブジェクトを引数として渡して、InputStreamReaderオブジェクトを作成します。文字エンコーディングは任意で指定できますが、指定しない場合はプラットフォームの既定の文字エンコーディングが使用されます。
  3. InputStreamReaderのreadメソッドを使用して文字データを読み込む。readメソッドはUnicode値で読み込んだ文字を整数で返し、ストリームの末尾の場合-1を返す。
  4. InputStreamReaderのclose()メソッドでストリームを閉じる

InputStreamReaderを利用して文字データを読み込む例を簡単なサンプルコードで以下に示す。

import java.io.*;

public class InputStreamReaderExample {
    public static void main(String[] args) {
        try {
            // 创建一个InputStream对象
            FileInputStream fis = new FileInputStream("input.txt");
            
            // 创建一个InputStreamReader对象,并将InputStream对象作为参数传递给它
            InputStreamReader isr = new InputStreamReader(fis);
            
            // 读取字符数据
            int data;
            while ((data = isr.read()) != -1) {
                // 处理读取的字符数据
                System.out.print((char) data);
            }
            
            // 关闭流
            isr.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上記のサンプルでは、まずFileInputStreamを作成し、その後InputStreamReaderのコンストラクタにFileInputStreamを渡してInputStreamReaderを作成します。次に、InputStreamReaderのread()メソッドを使って文字データを読み込み、System.out.print()メソッドで読み込んだ文字データをプリントします。最後に、InputStreamReaderのclose()メソッドを呼び出してストリームを閉じます。

InputStreamReaderでバイト列を読み込む際は、バイトを文字に変換します。そのため、バイト列が文字データでない場合や、適切な文字エンコーディングが使用されていない場合は、誤った文字データが読み込まれる可能性があります。従って、InputStreamReaderを使用する際には、適切な文字エンコーディングが使用されていることを確認する必要があります。

bannerAds