FileWriter
FileReader
import java.io.*;
public class Main {
    public static void main(String[] args) {
        
        // FileReaderを使う場合は、try-catchか、throwsを使用(errorが出るから)
        try {
        
            // FileReaderクラスをインスタンス化
            FileReader fr = new FileReader("data.txt");
            System.out.println("すべてのデータを読んで表示します。");
            // read()メソッドは、1文字ずつ読む。戻り値がint型
            int input = fr.read();
             
            // これ以上読めるデータがない場合、-1を返すので否定し、trueで繰り返す 
            while (input != -1) {
                // int型をchar型にキャストする
                char c = (char)input;
                System.out.print(c);
                
                // これ書かないと無限に出力し続ける
                input = fr.read();
            }
            // 読み取りを閉じる
            fr.close();
        } catch (IOException e) {
            System.out.println("エラーが発生しました。");
        }
    }
}FileReaderは、複数の文字をまとめて読み取ってString型で返すメソッドはない。1文字ずつ読み取るのが基本。
1文字つず読むならchar型のままで返してくれたらいいが、最後まで読み終わった時に、これ以上データがないと判断する方法がなく、苦肉の策としてint型にして、データがない場合は-1を返すという方法をとったらしい。






コメントを残す