Java将文本添加到文件中的特定行

时间:2016-05-17 13:02:28

标签: java file

我想知道是否可以在带有Java的文件中添加一行。

例如myFile:

1: line 1
2: line 2
3: line 3
4: line 4

我想在第三行添加一个line fox示例,所以它看起来像这样

1: line 1
2: line 2
3: new line
4: line 3
5: line 4

我发现如何在空文件或文件末尾添加文本,但我不知道如何在文本中间执行此操作而不删除该行。

另一种方法是将第一个文件分成两部分,然后创建一个文件,将新行的第一部分添加到第二部分,然后是第二部分因为感觉有点极端吗?

谢谢

2 个答案:

答案 0 :(得分:8)

在Java 7+中,您可以使用FilesPath类,如下所示:

List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);
lines.add(position, extraLine);
Files.write(path, lines, StandardCharsets.UTF_8);

举个例子:

Path path = Paths.get("C:\\Users\\foo\\Downloads\\test.txt");
List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);

int position = lines.size() / 2;
String extraLine = "This is an extraline";  

lines.add(position, extraLine);
Files.write(path, lines, StandardCharsets.UTF_8);

答案 1 :(得分:1)

您可以将文件读入ArrayList,您可以在任何位置添加元素并操纵所有元素及其数据,然后您可以将其再次写入文件。

PD:你不能直接在文件中添加一行,你只需要读取和写入/追加数据,你必须在内存中操作de数据然后重新写入。

让我知道这对你有用吗<​​/ p>