[英]How can I write to a file using BufferedWriter if the input type is double?
[英]How can I make a BufferedWriter write on the bottommost defined line in a text file?
public static void print(String id) {
try{
FileWriter fstream = new FileWriter("out.txt");
BufferedWriter out = new BufferedWriter(fstream);
out.write(id +"\n");
out.close();
}catch (Exception e){
}
}
我在运行时将这种方法称为数十万次,但它会一直覆盖第一行。 如何从最底线开始? (我负责使用转义序列定义的下一行。)
还是有更优雅的解决方案? 打开和关闭文本文件数十万次来存储我的模拟结果效率不高。 但话说回来,如果我在所有执行结束时关闭main,我会与许多人发生冲突,他们说I / O的一切都应该放在try / catch块中(同样,我也是必须处理从未执行的功能和未定义的功能等。
我不确定你在寻找什么,但如果你正在寻找一种方法来附加到文件,你可以试试
FileWriter fstream = new FileWriter("out.txt", true);
作为构造函数
public FileWriter(File file, boolean append)
将附加到给定的文件而不是覆盖它。
是的,您可以更改代码以使用new FileWriter("out.txt", true)
。 那会附加到文件中。 但是,还有其他选择:
我强烈建议使用OutputStreamWriter
(包装在FileOutputStream
)而不是FileWriter
。 这样您就可以指定文件的编码。 您希望它采用什么编码? (您仍然可以通过这种方式附加 - 您只需使用适当的FileOutputStream
构造函数。)
你为什么使用BufferedWriter
? 你正在给作家写一个字符串,然后关闭作者。 你期望缓冲有什么影响?
目前,您正吞下所有异常。 即使您确实希望以静默方式吞下IOException
,也不应该吞下其他异常。 始终抓住特定的例外情况。
如果抛出异常,则不是文件。 您应该始终使用finally
块关闭资源,或者使用Java 7中的try-with-resources
语句。
你每次写作时真的需要重新打开文件吗? 为什么不把它打开,只要你需要就写信给它? 然后在应用程序关闭时关闭它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.