[英]Is there a line limit when writing to a txt file using Java?
我试图通过将它们写入 txt 文件来保留 http 响应的日志。
我在Java中使用FileWriter,但不幸的是当超过行数(例如1000行)或txt文件的大小(例如80kb)时,它会自动删除以前的内容并写入新内容。
每次超过限制时都会发生这种情况。
try{
File file = new File("response.txt");
file.createNewFile();
FileWriter writer = new FileWriter(file,true);
writer.write(+System.currentTimeMillis()+"\t"+response+"\n");
writer.flush();
writer.close();}
catch(IOException ioe){
System.out.println("\nError");}
file.createNewFile();
每次调用此方法时,您都会在此处创建一个新文件。
FileWriter writer = new FileWriter(file,true);
在这里,您尝试附加到现有文件,该文件由于先前的File.createNewFile()
而不再存在。 因此,每次调用此方法时,您都会丢失所有先前的输出并写入新文件。 去掉它。
这种事无巨细,处处都在浪费时间和空间。 无论如何, new FileWriter()
已经必须完成所有这些,而您只是强迫它发生两次:在这种情况下,是错误的。
事实上,您应该尝试保持文件打开,而不是每次调用此方法时都重新打开和重新关闭它。 你在做什么是非常低效的。 以及不工作。
注意当您遇到异常时,打印异常。 不仅仅是"error"
。 否则接下来你会问为什么它会打印"error"
,因为你没有正确编写代码。
我猜是因为:
file.createNewFile()
用于每一行,它不可靠。请尝试以下操作:
BufferedWriter out = null;
try
{
out = new BufferedWriter(new FileWriter(file, true));
out.append(response);
out.newLine();
} catch(Exception e)
{
e.printStackTrace(); // if needed
out.append("Error");
out.newLine();
}
finally
{
ResourceUtil.closeQuietly(out);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.