用Java保存信息

时间:2014-01-20 15:03:28

标签: java serialization bluej

我正在用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();
        }

2 个答案:

答案 0 :(得分:0)

给您一个非常离线的建议....选择基于外部源的集成。使用JDBC bride编写数据。

您可以选择最简单的基于MS Excel格式的集成。这样,您的数据将更具可读性,并且您的程序将更加结构化。

Read more

答案 1 :(得分:0)

clicker是什么类型的对象?如果它不是像boolean或int这样的原语,但是它是一个Java对象,那么clicker==saveclicker==load可能不会按预期的方式工作。如果clicker是JButton,请使用equals()方法将其与保存和加载jbuttons进行比较:

if(clicker.equals(save)) {
... saving code
}

if(clicker.equals(load)) {
... loading code
}

此外,请确保使用调试器按预期方式保存和加载代码路径,或者(如果您只是学习java)添加一些System.out.println语句以确保它们正常工作。