【发布时间】:2019-08-05 16:25:49
【问题描述】:
我正在编写一个程序,它使用序列化来存储程序的对象(用户、管理员、书籍等)。我有多个控制器来控制将不同对象添加到不同数组列表中。 例子: 登录控制器控制系统中用户的添加和删除 例子: 图书控制器,用于控制向系统添加和删除图书
我想知道将来自不同控制器的所有这些不同对象保存到我的序列化文件中的最佳方法。
目前,我一直在读取每个控制器中的序列化文件以填充数组列表。这是我在“书”控制器中的阅读方法。 而且我也有一个保存到文件的方法,但是我不确定如何从不同的控制器实现 ArrayList。
private void populateArrayLists() {
System.out.print("Im here in ArrayList");
ArrayList<Object> deserialised = new ArrayList<Object>();
try {
FileInputStream file = new FileInputStream("info.ser");
ObjectInputStream inputFile = new ObjectInputStream(file);
deserialised = (ArrayList<Object>) inputFile.readObject();
inputFile.close();
file.close();
} catch (IOException | ClassNotFoundException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
books = (ArrayList<Book>) deserialised.get(2);
}
private void saveData() {
ArrayList<Object> allData = new ArrayList<Object>();
books.add(book1);
admins.add(admin1);
users.add(user1);
allData.add(users);
allData.add(admins);
allData.add(books);
try {
FileOutputStream file;
file = new FileOutputStream("info.ser");
ObjectOutputStream outputFile = new ObjectOutputStream(file);
outputFile.writeObject(allData);
outputFile.close();
file.close();
JOptionPane.showMessageDialog(null, "Saved");
} catch (IOException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
我想要一种将不同控制器中的所有不同对象保存在一个地方的方法。
【问题讨论】:
-
你似乎已经这样做了。有什么问题?
标签: java model-view-controller serialization fileinputstream fileoutputstream