我正在用java创建一个酒店预订系统。当我退出程序时,它不会保留我之前输入的信息。有关如何解决这个问题的任何建议?非常感谢。
代码:
//Creates a method that saves the data in a file
public void save(String filePath) {
try {
FileOutputStream fos = new FileOutputStream(filePath);
ObjectOutputStream out = new ObjectOutputStream(fos);
out.writeObject(this);
out.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
//Creates a method that loads the data from the file
public void load(String filePath) {
try {
FileInputStream fis = new FileInputStream(filePath);
ObjectInputStream in = new ObjectInputStream(fis);
ToSave save = (ToSave)in.readObject();
this.setGuests(save.getGuests());
this.setReservations(save.getReservations());
this.setRooms(save.getRooms());
in.close();
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
String FILE_PATH =“HotelReservationSystem.hrs”;
if(clicker == save) {
ToSave save = new ToSave();
save.setGuests(Global.guests);
save.setReservations(Global.reservations);
save.setRooms(Global.rooms);
save.save(FILE_PATH);
}
if(clicker == load) {
ToSave save = new ToSave();
save.load(FILE_PATH);
Global.guests = save.getGuests();
Global.reservations = save.getReservations();
Global.rooms = save.getRooms();
}
答案 0 :(得分:0)
给您一个非常离线的建议....选择基于外部源的集成。使用JDBC bride编写数据。
您可以选择最简单的基于MS Excel格式的集成。这样,您的数据将更具可读性,并且您的程序将更加结构化。
答案 1 :(得分:0)
clicker
是什么类型的对象?如果它不是像boolean或int这样的原语,但是它是一个Java对象,那么clicker==save
和clicker==load
可能不会按预期的方式工作。如果clicker
是JButton,请使用equals()方法将其与保存和加载jbuttons进行比较:
if(clicker.equals(save)) {
... saving code
}
if(clicker.equals(load)) {
... loading code
}
此外,请确保使用调试器按预期方式保存和加载代码路径,或者(如果您只是学习java)添加一些System.out.println语句以确保它们正常工作。