首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在文件输入输出java中使用数组

在文件输入输出java中使用数组
EN

Stack Overflow用户
提问于 2018-05-05 11:52:31
回答 1查看 297关注 0票数 1

这就是问题所在。我想使用java创建一个文件,这类似于用户可以在我的GUI中创建一个帐户或登录,然后他们的帐户变成我的file.txt。但是,我这里有个问题。当我在GUI中创建一个帐户时,它运行良好,并且创建了该文件。但是,当我再次尝试创建一个帐户时,一个以前创建过的帐户就消失了。所以,我想我需要在这个例子中使用arraylist,并且我使用它,但是它仍然不起作用。以下是代码:

代码语言:javascript
复制
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");
    }

}

这就是我们的行动:

代码语言:javascript
复制
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) {

    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-05 11:58:27

你有FileWriter fw = new FileWriter(filename);

因此,每次调用函数时,都会一次又一次地重写文件。

所以你有两个选择:

  1. 将一个凭据存储到每个设置文件名。(例如,可以通过将用户名附加到设置文件中来区分该文件)
  2. 将所有凭据存储到settings文件中。但是您必须以append模式打开您的文件 FileWriter fw =新的FileWriter(文件名,真);//真标志指示附加模式 您也必须更改您的读取端,因为您的设置文件现在存储所有凭据。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50189117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档