java - 如何继续将新记录附加到文本文件而不替换旧记录(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);
}
这是主要课程:
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));
然后您可以写入文件,新数据将附加到原始文件中。
推荐阅读
- mongodb - 'mongo' 不是内部或外部命令、可运行程序或批处理文件。路径不工作
- python - 关于playsound模块
- arrays - 数组公式引用另一个选项卡上的单元格,显示纯文本而不是公式
- android - 实现类所需的导入在文件顶部保持灰色 - 不可用
- python - 使用 re.findall() 解析 json 可以吗?
- sql-server - 在将 CSV 文件批量插入 SQL Server 期间忽略双引号之间的逗号
- android - 带有 JSP 和 android 应用程序的服务器
- python - 我在递归函数中找不到资源不足错误
- c# - 为每个用户身份设置会话
- java - 使用 swagger 变形器和 dropwizard 上传文件