使用带有字符串的文件加载ArrayList

时间:2015-01-03 22:43:08

标签: java arraylist printwriter

我正在创建一个跟踪员工的程序。我有一个跟踪当前员工的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?

1 个答案:

答案 0 :(得分:0)

您可以做的是序列化数组。你可以在这里阅读。

http://beginnersbook.com/2013/12/how-to-serialize-arraylist-in-java/

如果您以这种方式使用它将解决您的问题:
当您启动程序时,反序列化存储在文件中的数组。退出程序时,运行save方法(应调整该方法以将arraylist序列化为文件。