是否可以使用 PrintWriter 在某一行之后开始写入文件?
Is it possible to use PrintWriter to begin writing to a file AFTER a certain line?
这是我主要使用的内容(示例文件):
Line 1: 213124
Line 2: 243223
Line 3: 325425
Line 4: 493258
Line 5: 359823
有没有办法让 PrintWriter 开始写入上面显示的 5 行文件,但它只在第 5 行之后写入?所以就像我想使用
PrintWriter log = new PrintWriter("blah.txt");
log.println("52525")
我希望它把它写到第 6 行,而不是覆盖第 1 行。
编辑:对于有类似问题的任何人,您想弄清楚如何附加 您的文件。在我写这篇文章时,有两个人在下面展示了如何
要附加到现有文件,请使用 "append" 模式:
FileOutputStream fos = new FileOutputStream(filename,true);
PrintWriter pw = new PrintWriter(fos);
FileOutputStream
构造函数的 true
参数设置追加模式。
要追加到一个文件,需要使用FileWriter(String fileName, boolean append)
构造函数:
try (PrintWriter log = new PrintWriter(new FileWriter("blah.txt", true))) {
log.println("52525");
}
如果你要写很多输出,那么 BufferedWriter
may be good, and if you need to specify the character encoding, you need to wrap a FileOutputStream
with an OutputStreamWriter
。这使得链条更长:
try (PrintWriter log = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("blah.txt", true),
Charset.forName("UTF-8"))))) {
log.println("52525");
}
你调用的PrintWriter(String fileName)
实际上是shorthand for:
new PrintWriter(new OutputStreamWriter(new FileOutputStream(fileName)))
这是我主要使用的内容(示例文件):
Line 1: 213124
Line 2: 243223
Line 3: 325425
Line 4: 493258
Line 5: 359823
有没有办法让 PrintWriter 开始写入上面显示的 5 行文件,但它只在第 5 行之后写入?所以就像我想使用
PrintWriter log = new PrintWriter("blah.txt");
log.println("52525")
我希望它把它写到第 6 行,而不是覆盖第 1 行。
编辑:对于有类似问题的任何人,您想弄清楚如何附加 您的文件。在我写这篇文章时,有两个人在下面展示了如何
要附加到现有文件,请使用 "append" 模式:
FileOutputStream fos = new FileOutputStream(filename,true);
PrintWriter pw = new PrintWriter(fos);
FileOutputStream
构造函数的 true
参数设置追加模式。
要追加到一个文件,需要使用FileWriter(String fileName, boolean append)
构造函数:
try (PrintWriter log = new PrintWriter(new FileWriter("blah.txt", true))) {
log.println("52525");
}
如果你要写很多输出,那么 BufferedWriter
may be good, and if you need to specify the character encoding, you need to wrap a FileOutputStream
with an OutputStreamWriter
。这使得链条更长:
try (PrintWriter log = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("blah.txt", true),
Charset.forName("UTF-8"))))) {
log.println("52525");
}
你调用的PrintWriter(String fileName)
实际上是shorthand for:
new PrintWriter(new OutputStreamWriter(new FileOutputStream(fileName)))