关闭jframe并在java中重新打开后保存变量

时间:2013-11-27 16:37:23

标签: java variables

我正在创建一个要求您输入密码的程序,并添加一个选项以便稍后更改密码,但每次关闭它并再次打开密码时,密码都会重置为默认值我再打开它。我已将默认关闭操作设置为隐藏,但我认为每次再次运行程序时,它都是全新的。另外,我查看了我的任务管理器的后台程序,还有很多" Java TM Platform SE Binary" s。 这是我的核心问题:

当我从eclipse运行程序时,它每次都会打开一个全新的程序吗?我能改变一下吗?

如何在程序中的打开/关闭操作中保存变量?

提前致谢

3 个答案:

答案 0 :(得分:1)

你没有发布任何代码,所以我假设你定义了一个password变量,你的程序看起来像这样:

Scanner userInput = new Scanner(System.in);
String password = "Default01";
System.out.print("Enter new password: ");
password = userInput.next();

每次运行程序时,它都会在RAM中创建一个全新的password变量实例。程序关闭时,RAM中的任何内容都将被销毁。您需要某种持久存储,您可以将该信息写入变量。文本文件是一种简单的方法。添加它会使您的程序看起来像:

Scanner userInput = new Scanner(System.in);
File passwordFile = new File("passwordfile.txt");
//this is where the password is stored.
Scanner passwordScanner = new Scanner(passwordFile);
//this is how you read the file.
String password = passwordScanner.next();
//password has been read.

...然后提示输入新密码。

System.out.print("Enter new password: ");
password = userInput.next(); //prompt for new password

...然后将该新密码写入文件以进行持久存储。

PrintWriter passwordWriter = new PrintWriter("passwordfile.txt");
// overwrites the current passwordfile.txt, so you now have an empty file
passwordWriter.print(password);
//writes the password to passwordfile.txt so it can be used next time.

希望这有点帮助!

答案 1 :(得分:0)

再次运行程序将以新的状态启动它,因此存储在上一次运行的变量中的任何内容都将消失。如果要保留数据,则需要将程序存储在文件或数据库中(文件作为初学者最容易学习)。然后,当您再次运行程序时,您可以检查保存的文件是否存在,打开它,并读取保存的密码。有很多关于如何用Java进行文件输入/输出的教程,所以只需在Google上搜索一个。

答案 2 :(得分:0)

尝试将变量写入文本文件或Serialize。如果你想让它变得更难,那么只需使用你选择的数据库。