【发布时间】:2020-08-21 08:54:52
【问题描述】:
我现在的问题是,当我追加新记录时,它会替换旧记录。
以下是将我从文本框获得的所有输入写入文本文件的代码块:
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);
}
这是主类:
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
因此,如果我希望程序能够继续将新记录附加到文本文件中,我需要做的解决方案是什么?
【问题讨论】:
-
您必须以附加模式打开文件。
PrintWriter p = new PrintWriter(new FileOutputStream("Logfile.txt", true)); -
@NomadMaker,请将您的评论升级为答案。
-
BTW @KongJason 请注意您的示例代码 sn-ps 如何不包含单个 Swing 或 AWT 类?这是一个危险信号,表明标签不适合这个问题,因为它与那些包无关。以后在标签上考虑更长时间。
标签: java io printwriter