我正在编写“更改密码”按钮,我在覆盖保存在文本文件中的密码时遇到问题。
所以想象一下,文本文件中分别保存了用户名和密码:
John01
1871993
$$$
Jessica
123456
$$$
(...)
如何覆盖例如用户:John01当前密码“1871993”并在单击“更改密码”按钮后输入新密码?
我现在所拥有的只是使用新密码保存相同的用户名。
这是我更改密码按钮的代码:
if (ChangePassword())
{
if (EnterCurrentPasswordTextField.getText().trim().length() != 0
&& NewPasswordTextField.getText().trim().length() != 0
&& ConfirmNewPasswordTextField.getText().trim().length() != 0)
{
if (NewPasswordTextField.getText().equals(ConfirmNewPasswordTextField.getText()))
{
FileWriter out = null;
try{
out = new FileWriter("login.txt", true);
out.append(System.getProperty("line.separator"));
out.append(NameTextField.getText());
out.append(System.getProperty("line.separator"));
out.append(ConfirmNewPasswordTextField.getText());
out.append(System.getProperty("line.separator"));
out.append(System.getProperty("line.separator"));
out.append("$$$");
out.append(System.getProperty("line.separator"));
out.close();
out=null;
}catch(IOException ioe){
NameTextField.setText("IOProblem");
}
StatusMessageLabel.setText(NameTextField.getText() + " you have succesfully changed your password");
MainTabbedPane.setEnabledAt(0, false);
MainTabbedPane.setEnabledAt(1, true);
MainTabbedPane.setEnabledAt(2, true);
MainTabbedPane.setEnabledAt(3, true);
MainTabbedPane.setEnabledAt(4, true);
MainTabbedPane.setEnabledAt(5, false);
MainTabbedPane.setSelectedIndex(2);
}
else {
StatusMessageLabel.setText("ERROR: Please confirm your New Password is identical in both fields!");
}
}
else {
StatusMessageLabel.setText("ERROR: Please enter all empty fields!");
}
}
else {
StatusMessageLabel.setText("ERROR: Wrong Current Password Details!!");
}
答案 0 :(得分:1)
将您当前的密码/用户名文件加载到Map中查找您的条目并写出您的Map条目。也许更好的解决方案是使用某种内存数据库。
答案 1 :(得分:0)
如何使用MappedByteBuffer
。