2013-11-27 70 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他們。如果你想讓它變得更難,那麼只需使用你選擇的數據庫。

相關問題