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を返すという方法をとったらしい。
コメントを残す