这就是问题所在。我想使用java创建一个文件,这类似于用户可以在我的GUI中创建一个帐户或登录,然后他们的帐户变成我的file.txt。但是,我这里有个问题。当我在GUI中创建一个帐户时,它运行良好,并且创建了该文件。但是,当我再次尝试创建一个帐户时,一个以前创建过的帐户就消失了。所以,我想我需要在这个例子中使用arraylist,并且我使用它,但是它仍然不起作用。以下是代码:
String filename="D:/settings.txt";
public void getIdentity() throws FileNotFoundException, IOException{
File file = new File(filename);
ArrayList identity = new ArrayList();
String fullname = txt_fullname.getText();
String username = txt_username.getText();
String password = pass_password.getText();
try {
FileWriter fw = new FileWriter(filename);
Writer output = new BufferedWriter(fw);
identity.add(fullname + "-" + username + "-" + password);
for (int i = 0; i <identity.size(); i++)
{
output.write(identity.get(i).toString() + "\n");
}
output.close();
}
catch (Exception ex)
{
JOptionPane.showMessageDialog(null, "Cannot create a file");
}
}这就是我们的行动:
try {
if(txt_username.getText() != null && pass_password.getText() != null
&& txt_fullname.getText() != null)
{
getIdentity();
JOptionPane.showMessageDialog(null, "Congratulations, you've created a file");
this.setVisible(false);
Login login = new Login();
login.setVisible(true);
}
else {
JOptionPane.showMessageDialog(null, "Please fill in your identity");
}
} catch (IOException ex) {
}发布于 2018-05-05 11:58:27
你有FileWriter fw = new FileWriter(filename);
因此,每次调用函数时,都会一次又一次地重写文件。
所以你有两个选择:
settings文件中。但是您必须以append模式打开您的文件
FileWriter fw =新的FileWriter(文件名,真);//真标志指示附加模式
您也必须更改您的读取端,因为您的设置文件现在存储所有凭据。https://stackoverflow.com/questions/50189117
复制相似问题