Java writeObject正在写入空的ArrayList
我无法将自定义类的Java writeObject正在写入空的ArrayList,java,arraylist,Java,Arraylist,我无法将自定义类的ArrayList写入文件。我正在使用 public static void SaveEmployees() throws FileNotFoundException, IOException{ ObjectOutputStream save = new ObjectOutputStream(new FileOutputStream("magicscheduleEmp.sav"); save.writeObject(employeeList); save
ArrayList
写入文件。我正在使用
public static void SaveEmployees() throws FileNotFoundException, IOException{
ObjectOutputStream save = new ObjectOutputStream(new FileOutputStream("magicscheduleEmp.sav");
save.writeObject(employeeList);
save.close();
}
其中,employeeList
在main方法中声明并初始化为Employees
(我的类)的ArrayList
。我已经明确地向employeeList
添加了对象,但是调用SaveEmployees
会向文件写入一个空的ArrayList
。Employee
类是可序列化的
我做错了什么
编辑:此处初始化employeeList(在主方法中)
我有一个按钮,它打印employeeList的内容,并显示列表在保存前已填充。可能是调用SaveEmployees有问题?告诉我们如何初始化和填充
employeeList
。在您的示例中,它必须是一个静态字段。在不了解arraylist的情况下,我只能建议您单独编写每个元素,如本示例所示:如果您使用arraylist
来支持列表employeeList
,并且您确信Employee
类实现了可序列化,然后employeeList
为空。您必须提供更多代码。我尝试了一个SSCCE,写和读的作品很好地涵盖了你在这里暴露的东西。Employee类可序列化,employeeList为静态。是否确定文件为空?您是否尝试过对其进行反序列化并打印结果?您的代码似乎没有问题。也许您可以尝试使用缓冲输出流
来包装文件输出流
。
public static ArrayList<Employee> employeeList = new ArrayList<>();
if(MainUI.addempcheck == true){
Employee newEmployee = new Employee(LastName.getText(), FirstName.getText());
newEmployee.position = EmpType.getSelectedItem().toString();
MainUI.employeeList.add(newEmployee);
MainUI.listModel.addElement(newEmployee.writeName().toString());
}
try {
MainUI.SaveEmployees();
} catch (FileNotFoundException ex) {
Logger.getLogger(NewEmployeeUI.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(NewEmployeeUI.class.getName()).log(Level.SEVERE, null, ex);
}
this.dispose();