在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的数据重复。谢谢你的帮助