我正在创建一个跟踪员工的程序。我有一个跟踪当前员工的ArrayList。由于在程序重新启动后不保留ArrayLists,我需要找到一种方法来保留员工列表。我决定创建一个包含所有员工列表的文件,然后每次程序运行时都会将文件导入到ArrayList中。我创建了一个save方法和一个addEmployee方法,这是我到目前为止所做的:
创建新员工的代码(不是addEmployee方法):
System.out.println("Please enter the new employee's first name:");
firstName = addEmployee.nextLine();
System.out.println("Please enter the new employee's last name");
lastName = addEmployee.nextLine();
addEmployee(firstName, lastName); //calling the addEmployee method
save("employeetest"); //saving the array
保存方法:
public static void save(String fileName) throws FileNotFoundException {
String tmp = employees.toString();
PrintWriter pw = new PrintWriter(new FileOutputStream(fileName,true));
pw.write(tmp);
pw.close();
}
问题是每次创建新员工时,它都会再次保存整个ArrayList,而不仅仅是员工姓名。所以我决定只在文件末尾加载员工的名字(作为一个字符串)。但是现在我需要将Strings文件加载到ArrayList中。我应该如何将文件中的字符串转换为ArrayList,然后将其加载到ArrayList?
答案 0 :(得分:0)
您可以做的是序列化数组。你可以在这里阅读。
http://beginnersbook.com/2013/12/how-to-serialize-arraylist-in-java/
如果您以这种方式使用它将解决您的问题:
当您启动程序时,反序列化存储在文件中的数组。退出程序时,运行save方法(应调整该方法以将arraylist序列化为文件。