我创建了一个类变量如下
private boolean xyz = false;
之后我调用一个方法来做一些事情,然后将布尔变量的值更改为true
.
现在,当我下次重新运行代码时,布尔值不会保持为真,它会回到假。
即使我关闭我的程序然后稍后再次运行它,我也希望它保持真实。
当您退出程序时,请使用以下命令将变量保存到您自己位置的文件中,最好是程序的本地目录。它被称为序列化。
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() 来实现。