我目前正在学习 java,需要知道将 csv 文件的内容复制到数组中并再次将数组的内容复制到 csv 文件中的最简单方法。所以目前我有一个 CSV 文件 employee.csv 包含以下内容:
Name,Company,Experience.
现在我需要检索经验大于 2 的员工,并将它们放入另一个包含姓名、经验的数组中。
我想将此数组写入另一个名为 results.csv 的 .csv 文件
实现这一目标的最佳方法是什么?
我目前正在学习 java,需要知道将 csv 文件的内容复制到数组中并再次将数组的内容复制到 csv 文件中的最简单方法。所以目前我有一个 CSV 文件 employee.csv 包含以下内容:
Name,Company,Experience.
现在我需要检索经验大于 2 的员工,并将它们放入另一个包含姓名、经验的数组中。
我想将此数组写入另一个名为 results.csv 的 .csv 文件
实现这一目标的最佳方法是什么?
我认为您应该尝试自己编写代码,而不是使用某些库来为您完成此任务。对于“正在学习 Java”的人来说,解析 CSV 文件是一个很好的练习。
下面是一个保存员工的类和解析文件的方法。可能应该有更多的错误检查代码。如果文件中有一行没有两个逗号,程序将崩溃。我没有为你处理经验值检查。您可以在创建员工时进行检查,并且仅在他们满足经验要求时才将新对象添加到数组中,或者您可以在写入文件之前检查该值。为了简化文件的输出,我在 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;
}
您可以在这里查看以找到读取和写入 csv 文件的方法。
您只需要Experience
在读取文件后employee.csv
和写入result.csv
文件之前检查。