如何在不替换旧记录的情况下继续将新记录追加到文本文件中(Java)
How to continue append the new record into text file without replace the old record (Java)
我现在的问题是当我附加新记录时,它会替换旧记录。
下面是代码块,它将我从文本框获得的所有输入写入 文本文件:
try{
PrintWriter p = new PrintWriter("LogFile.txt");
p.print("USERNAME\tROLE\t\tACTION\t\tLOGON_TIME\n");
p.print(AcademicSystem.user.getLogin_username() + "\t\t");
p.print(AcademicSystem.user.getRole()+ "\t");
p.print("Login" + "\t\t");
Calendar cal = Calendar.getInstance();
SimpleDateFormat simpleformat = new SimpleDateFormat("dd/MMMM/yyyy hh:mm:s");
p.print(simpleformat.format(cal.getTime())+ "\n");
p.println();
p.close();
}catch(Exception er){
JOptionPane.showMessageDialog(this,er);
}
这是主要的class:
Scanner lg = new Scanner(new File("LogFile.txt"));
while(lg.hasNext()){
lg.nextLine();
在文本文件中输出:
USERNAME ROLE ACTION LOGON_TIME
a Lecturer Login 21/August/2020 03:17:2
因此,如果我希望程序能够继续将新记录附加到文本文件,我需要做的解决方案是什么?
以附加模式打开文件。
通常打开文件会覆盖原始文件中的所有数据。但是,如果您打开文件名和布尔值为 true 的 FileOutputStream,它将在原始数据之后附加新数据。
FileOutputStream file = new FileOutputStream(String filename, boolean append)
要像最初打开一样打开 PrintWriter,请使用以下行:
PrintWriter p = new PrintWriter(new FileOutputStream("Logfile.txt", true));
然后您可以写入文件,新数据将附加到原始文件。
我现在的问题是当我附加新记录时,它会替换旧记录。
下面是代码块,它将我从文本框获得的所有输入写入 文本文件:
try{
PrintWriter p = new PrintWriter("LogFile.txt");
p.print("USERNAME\tROLE\t\tACTION\t\tLOGON_TIME\n");
p.print(AcademicSystem.user.getLogin_username() + "\t\t");
p.print(AcademicSystem.user.getRole()+ "\t");
p.print("Login" + "\t\t");
Calendar cal = Calendar.getInstance();
SimpleDateFormat simpleformat = new SimpleDateFormat("dd/MMMM/yyyy hh:mm:s");
p.print(simpleformat.format(cal.getTime())+ "\n");
p.println();
p.close();
}catch(Exception er){
JOptionPane.showMessageDialog(this,er);
}
这是主要的class:
Scanner lg = new Scanner(new File("LogFile.txt"));
while(lg.hasNext()){
lg.nextLine();
在文本文件中输出:
USERNAME ROLE ACTION LOGON_TIME
a Lecturer Login 21/August/2020 03:17:2
因此,如果我希望程序能够继续将新记录附加到文本文件,我需要做的解决方案是什么?
以附加模式打开文件。
通常打开文件会覆盖原始文件中的所有数据。但是,如果您打开文件名和布尔值为 true 的 FileOutputStream,它将在原始数据之后附加新数据。
FileOutputStream file = new FileOutputStream(String filename, boolean append)
要像最初打开一样打开 PrintWriter,请使用以下行:
PrintWriter p = new PrintWriter(new FileOutputStream("Logfile.txt", true));
然后您可以写入文件,新数据将附加到原始文件。