我正在创建一个文件并将其发送回网络浏览器:
org.joda.time.format.DateTimeFormatter fmt2 = DateTimeFormat.forPattern("ddMMyyyy");
File file = new File("VE_ximport_"+dateLivraison.toString(fmt2)+".txt");
FileWriterWithEncoding writer;
writer = new FileWriterWithEncoding(file,"UTF-8", true);
PrintWriter printer = new PrintWriter(writer);
for (Object[] obj : results){
//handle data
printer.write(data);
}
printer.close();
我多次调用此函数,每次都覆盖文件。 这是我正在寻找的行为 它适用于Ubuntu 但是在Windows Server 2012 R2上,每次调用该函数时,它都会将数据附加到现有文件中 即使我在每次调用之间重新启动服务器,也会附加文件,但不会创建新文件。
我生气了...
我哪里错了?
谢谢。
答案 0 :(得分:1)
目前还不清楚你的意思是哪个文件,但是如果你问的是你在这一行创建的文件:
writer = new FileWriterWithEncoding(file,“UTF-8”,true)
对第二个参数使用false,因此每次都会被覆盖。
答案 1 :(得分:0)
您似乎每次只为您的文件创建相同的名称,只要您在同一天进行 - 因为您使用掩码“ddMMyyyy”转换日期变量“dateLivraison”。典型的解决方案是获取当前时间戳并将其转换为字符串,该字符串不仅反映日期,还反映时间长达几秒或几毫秒。这将确保创建的文件名的唯一性。