我正在创建一个要求您输入密码的程序,并添加一个选项以便稍后更改密码,但每次关闭它并再次打开密码时,密码都会重置为默认值我再打开它。我已将默认关闭操作设置为隐藏,但我认为每次再次运行程序时,它都是全新的。另外,我查看了我的任务管理器的后台程序,还有很多" Java TM Platform SE Binary" s。 这是我的核心问题:
当我从eclipse运行程序时,它每次都会打开一个全新的程序吗?我能改变一下吗?
如何在程序中的打开/关闭操作中保存变量?
提前致谢
答案 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
。如果你想让它变得更难,那么只需使用你选择的数据库。