我创建了一个类变量,如下所示
private boolean xyz = false;
之后我调用一个方法来做一些事情,然后将布尔变量的值改为true
。
现在下次当我重新运行代码时,布尔值不会保持为真,它会返回false。
即使我关闭程序然后再运行它,我希望它保持原样。
答案 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()来实现。