2013-11-27 39 views
-1

我正在制作一个程序,要求您输入密码,并在稍后添加一个选项以更改密码,但每当我关闭它并再次打开它时,每当我再次打开密码时,密码都将重置为默认值。我设置了隐藏的默认关闭操作,但我认为每次我再次运行该程序时,它都是全新的。另外,我研究了我的任务管理器的后台程序,并且有很多“Java TM Platform SE Binary”。 这里是我的核心问题:在关闭jframe并在java中重新打开后保存变量

当我从eclipse运行程序时,它是否每次都打开一个全新的程序?我可以改变这个吗?

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

在此先感谢

回答

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. 

希望这会有所帮助!

0

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

0

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

相关问题