ライブラリを使用してこのタスクを実行する代わりに、自分でコードを記述してみる必要があると思います。CSV ファイルの解析は、「現在 Java を学んでいる」人にとっては良い練習になります。
以下は、Employees を保持するクラスと、ファイルを解析するメソッドです。おそらく、エラー チェック コードがもっとあるはずです。ファイルにコンマが 2 つない行があると、プログラムがクラッシュします。あなたの経験値チェックは私が担当しませんでした。従業員を作成するときにそれを確認し、経験要件を満たしている場合にのみ新しいオブジェクトを配列に追加するか、ファイルに書き込む前にその値を確認できます。ファイルへの出力を簡素化するために、Employee に CSVString メソッドを記述しました。
public class Employee {
private String name;
private String company;
private int experience;
public Employee(String name, String company, int experience) {
this.name = name;
this.company = company;
this.experience = experience;
}
public Employee(String name, String company, String exp) {
this.name = name;
this.company = company;
try {
experience = Integer.parseInt(exp.trim());
}
catch(NumberFormatException utoh) {
System.out.println("Failed to read experience for " + name +
"\nCannot conver to integer: " + exp);
}
}
public String toCSVString() {
return name + "," + company + "," + experience;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
public int getExperience() {
return experience;
}
public void setExperience(int experience) {
this.experience = experience;
}
}
次に、ファイルからリストを読み取ります。
public static ArrayList<Employee> readEmployeeFile(File csvFile) {
ArrayList<Employee> list = new ArrayList<>();
Employee joe;
try {
Scanner in = new Scanner(csvFile);
String line;
while(in.hasNextLine()) {
line = in.nextLine().trim();
String[] col = line.split(",");
joe = new Employee(col[0],col[1],col[2]);
list.add(joe);
}
in.close();
}
catch(IOException ug) {
System.out.println("Error reading line: " + line);
System.out.println(ug);
}
return list;
}