【发布时间】:2015-03-14 05:02:07
【问题描述】:
我正在尝试创建一个命令,允许登录的用户编辑他们的用户名和密码,然后保存更新的详细信息。目前更新详细信息似乎有效,但是当我将详细信息写入新文件时,旧文件中的所有其他数据(其他用户详细信息)都将被删除,并且只有当前用户更新的详细信息出现在文件中。这是我的代码:
public class UpdateDetailsCommand implements Command{
private BufferedWriter out;
private BufferedReader in;
private MsgSvrConnection conn;
public void execute() throws IOException
{
if (conn.getCurrentUser() != null) {
String username1 = conn.getCurrentUser();
String password1 = conn.getServer().getUserPassword(username1);
BufferedReader fr = new BufferedReader(new FileReader("pwd.txt"));
PrintWriter fw = new PrintWriter(new FileWriter("pwd.txt", true));
String line;
String username = in.readLine();
String password = in.readLine();
if (password != null && username != null) {
while ((line = fr.readLine()) != null) {
if (line.contains(username1) && line.contains(password1) ){
line = line.replace(username1, username);
line = line.replace(password1, password);
fw.println(line);
}
}
fr.close();
fw.close();
out.write("done");
out.flush();
}
}
}
public UpdateDetailsCommand(BufferedReader in, BufferedWriter out,
MsgSvrConnection serverConn)
{
this.out = out;
this.in = in;
this.conn = serverConn;
} }
我猜我读写文件的方式不太正确,但我不确定我在这里做错了什么。
【问题讨论】:
-
你没有检查
.delete()和.renameTo()的结果...不是你的问题,但他们可能会失败。