0

我创建了一个类变量如下

private boolean xyz = false;

之后我调用一个方法来做一些事情,然后将布尔变量的值更改为true.

现在,当我下次重新运行代码时,布尔值不会保持为真,它会回到假。

即使我关闭我的程序然后稍后再次运行它,我也希望它保持真实。

4

2 回答 2

6
于 2012-07-21T20:31:46.643 回答
0

当您退出程序时,请使用以下命令将变量保存到您自己位置的文件中,最好是程序的本地目录。它被称为序列化

try
      {
         FileOutputStream fileOut = new FileOutputStream("xyz.ser");//this saves to the directory where your program runs in
         ObjectOutputStream out = new ObjectOutputStream(fileOut);
         out.writeObject(xyz);
         out.close();
          fileOut.close();
      }catch(IOException i)
      {
          i.printStackTrace();
      }

然后,当你启动你的程序时,你可以用下面的代码读回它。这称为反序列化

try
         {
            FileInputStream fileIn = new FileInputStream("xyz.ser");
            ObjectInputStream in = new ObjectInputStream(fileIn);
            xyz = (boolean) in.readObject();
            in.close();
            fileIn.close();
        }catch(IOException i)
        {// you are here if xyz.ser does not exist
            i.printStackTrace();
            return;
        }

您可能还想检查该文件是否是以前创建的,否则,您将捕获 IOException。您可以通过创建一个文件名为 xyz.ser 的 File 对象并在其上调用 exists() 来实现。

于 2012-07-21T20:51:03.857 回答