我正在编程"更改密码"按钮,在覆盖保存在文本文件中的密码时遇到问题。
因此,假设有一个用户名和密码分别保存在一个文本文件中:
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!!");
}
将您当前的密码/用户名文件加载到Map中。找到您的条目并写出您的Map条目。也许更好的解决方案是使用某种内存数据库。
使用MappedByteBuffer
怎么样。