Files.readAllLines(Paths.get("ファイル名")) でファイルの内容を1行ずつStringのListで得ることが出来る。
ReadSampleクラス
try{
List<String> lines = Files.readAllLines(Paths.get("shain.txt"));
for(String line: lines){
System.out.println(line);
}
} catch (IOException e) {
System.out.println("読み込みエラー:" + e.getMessage());
}
CSV(カンマ区切り)ファイルを読み込んで、クラスのインスタンスを生成する場合、以下のように行う。
Shainクラス(追加)
新たに一行文の文字列(カンマ区切り)からインスタンスを生成するコンストラクタを定義する
public Shain(String line){
// カンマ区切り分割
String[] data = line.split(",");
// 各要素を変数に(int型は変換)
this.id = data[0];
this.name = data[1];
this.busho = data[2];
this.age = Integer.parseInt(data[3]);
}
ShainReadクラス
最初にShainのListを定義する。ファイルを読み込んだら、一行ずつ、その行を元にリストに追加していく。
// ShainのList
List<Shain> list = new ArrayList<>();
try{
List<String> lines = Files.readAllLines(Paths.get("shain.txt"));
for(String line: lines){
// リストに追加
list.add(new Shain(line));
}
} catch (IOException e) {
System.out.println("読み込みエラー:" + e.getMessage());
}
// 最後に全表示
for(Shain s: list){
System.out.println(s);
}