如何在程序停止后在布尔值中维护特定值?

时间:2012-07-21 20:29:55

标签: java boolean

我创建了一个类变量,如下所示

private boolean xyz = false;

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

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

即使我关闭程序然后再运行它,我希望它保持原样。

2 个答案:

答案 0 :(得分:6)

  

即使我关闭程序然后再运行它,我希望它保持原样。

嗯,这意味着你需要在某个地方坚持下去。

选项包括:

  • 某处在线
  • 数据库
  • 通过Preferences API
  • 的用户偏好设置
  • 知名位置的简单文件

基本上,您需要将数据写出某处,并在启动时将其读回。没有更多背景,很难提供更具体的建议。

答案 1 :(得分: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()来实现。