Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 关闭程序后如何保存对象变量?_Java_Database_Variables_Exit - Fatal编程技术网

Java 关闭程序后如何保存对象变量?

Java 关闭程序后如何保存对象变量?,java,database,variables,exit,Java,Database,Variables,Exit,我试图通过创建一个垄断银行家程序来学习Java和OOP。但是,我希望在退出程序后保存一些对象变量,以便在玩了一半垄断游戏后,我可以退出程序,然后在保存所有玩家余额的情况下重新启动程序 我猜这需要某种数据库 这是我的代码的一部分;我试图在退出程序后为我的所有对象(玩家)保存“balance”变量 public class Monopoly { /** * @param args the command line arguments */ public static void main(

我试图通过创建一个垄断银行家程序来学习Java和OOP。但是,我希望在退出程序后保存一些对象变量,以便在玩了一半垄断游戏后,我可以退出程序,然后在保存所有玩家余额的情况下重新启动程序

我猜这需要某种数据库

这是我的代码的一部分;我试图在退出程序后为我的所有对象(玩家)保存“balance”变量

   public class Monopoly {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here
    //creates the users (name classes)
players player1 = new players();
players player2 = new players();
players player3 = new players();
players player4 = new players();



while (true)  {

player1.balance=player1.finalbalance;
player2.balance=player2.finalbalance;
player3.balance=player3.finalbalance;
player4.balance=player4.finalbalance;

您必须将其保存到某个文件中,这是在程序之间传输信息的唯一可靠方法。您需要决定保存文件的格式。查找一些阅读/编写文件的教程,我相信它会有所帮助。

也许我没有真正理解您的问题,但是如果您需要一种方法在程序退出之前捕获退出(例如CTRL-C),您可以使用“退出挂钩”,也可以用来释放连接


我只想序列化此对象,并在您恢复游戏后反序列化它。我认为这是最好的办法。在这里你可以找到如何做到这一点

当然,你可以使用数据库,但对于一个简单的离线游戏来说,这就太过分了。在这种情况下,更常见的做法是将游戏状态保存到文件(“savegame”)


通过使用该类,可以将对象写入文件。它将对象转换为一种格式,以后可以用类读取该格式。

为此,数据库是一种常用工具。但任何持久性介质都会起作用。您可以将状态保存到XML文件、文本文件、数据库以及关闭应用程序后存在的任何内容。至于如何,这是一个相当广泛的话题。我建议找一本关于使用Java数据库的教程,并从中学习。所以我想没有真正简单的方法可以做到这一点?我认为这是一种非常适合初学者的方法。别担心。文件管理并不是那么难。但是,除非你真的想深入到内存注册表中去,否则没有更简单的方法。程序是自包含的,在它们之外唯一持久的东西就是它们在计算机上改变了什么,而文件是改变计算机上信息的唯一真实方式