我需要将文本重复附加到 Java 中的现有文件中。我怎么做?
原文由 flyingfromchina 发布,翻译遵循 CC BY-SA 4.0 许可协议
我需要将文本重复附加到 Java 中的现有文件中。我怎么做?
原文由 flyingfromchina 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用 fileWriter
并将标志设置为 true
进行附加。
try
{
String filename= "MyFile.txt";
FileWriter fw = new FileWriter(filename,true); //the true will append the new data
fw.write("add a line\n");//appends the string to the file
fw.close();
}
catch(IOException ioe)
{
System.err.println("IOException: " + ioe.getMessage());
}
原文由 northpole 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
你这样做是为了记录目的吗?如果是这样,那么有 几个库。其中最流行的两个是 Log4j 和 Logback 。
Java 7+
对于一次性任务, Files 类 使这很容易:
小心:如果文件不存在,上述方法将抛出
NoSuchFileException
。它也不会自动附加换行符(在附加到文本文件时通常需要)。另一种方法是同时传递CREATE
和APPEND
选项,如果文件不存在,它将首先创建文件:但是,如果您将多次写入同一个文件,则上述代码段必须多次打开和关闭磁盘上的文件,这是一个缓慢的操作。在这种情况下,
BufferedWriter
更快:笔记:
FileWriter
构造函数的第二个参数将告诉它附加到文件,而不是写入新文件。 (如果文件不存在,将被创建。)BufferedWriter
(例如FileWriter
)。PrintWriter
可以访问println
语法,您可能习惯于System.out
。BufferedWriter
和PrintWriter
包装器并不是绝对必要的。较早的 Java
异常处理
如果您需要对旧 Java 进行强大的异常处理,它会变得非常冗长: