在Java中覆盖文本文件

在Java中覆盖文本文件,java,text-files,overwrite,filewriter,bufferedwriter,Java,Text Files,Overwrite,Filewriter,Bufferedwriter,应用程序应该能够注册一个新用户并将数据保存到文本文件中,该文本文件已经有许多用户的数据。此代码可以正常工作,但不会将新数据保存到文本文件中。如何覆盖文本文件?我应该先从文本中读取数据并将所有数据写回文本文件,还是有一种方法可以添加一行并在其中写入新数据 registerB.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){

应用程序应该能够注册一个新用户并将数据保存到文本文件中,该文本文件已经有许多用户的数据。此代码可以正常工作,但不会将新数据保存到文本文件中。如何覆盖文本文件?我应该先从文本中读取数据并将所有数据写回文本文件,还是有一种方法可以添加一行并在其中写入新数据

registerB.addActionListener(new ActionListener(){
                        public void actionPerformed(ActionEvent e){
                            String getFullname = fullnameT.getText();
                            String getUsername = usernameT.getText();
                            String getPassword = passwordT.getText();
                            String getPN = pnT.getText();
                            String getEmail = emailT.getText();
                            boolean theSame = false;
                            String []Fullname = new String[20];
                            String []Username = new String[20];
                            String []Password = new String[20];
                            String []PN = new String[20];
                            String []Email = new String[20];

            if(!getFullname.isEmpty() && !getUsername.isEmpty() && !getPassword.isEmpty() && !getPN.isEmpty() && !getEmail.isEmpty()){
                int k = 0;
                try {
                    Scanner in = new Scanner (new FileReader("login.txt", true));
                    while (in.hasNext()) {
                        Fullname[k] = in.next();
                        Username[k] = in.next();
                        Password[k] = in.next();
                        PN[k] = in.next();
                        Email[k] = in.next();
                        in.next();

                        if(getUsername.equals(Username[k])){
                            JOptionPane.showMessageDialog(null, "Username already has been registered.");
                            theSame = true;
                            break;
                        }
                        k++;
                    }
                }catch(Exception ew){}
                try
                {
                    String path = "login.txt";

                    File file = new File(path);

                    FileWriter fileWriter = new FileWriter(file,true);

                    BufferedWriter bufferFileWriter  = new BufferedWriter(fileWriter);

                    fileWriter.append("," + getFullname + "," + getUsername + "," + getPassword + "," + getPN + "," + getEmail +"," + "\n");

                    bufferFileWriter.close();

                    System.out.println("User Registration Completed");

                }catch(Exception ex){
                    System.out.println(ex);
                }
            else{
                JOptionPane.showMessageDialog(null, "One or some of the fields is/are empty");
            }
        }
    });
文本文件格式如下

全名、用户名、密码、电话号码、电子邮件

全名、用户名、密码、电话号码、电子邮件
这是错误的
新文件阅读器(“login.txt”,true)

你有这个构造函数吗

newfilewriter(“login.text”)
更改为
newfilewriter(“login.text”,true)


true将把新数据附加到现有数据中

可能与我看到的没有包含FileWriter的数据重复。谢谢你的帮助