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

问题描述:

我想知道是否有可能在File with Java中添加一行。Java将文本添加到文件中的特定行

例如MYFILE:

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

我想在第三行中添加一行狐狸例如所以它看起来像这样

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

我发现了如何在添加文本空文件或在文件的末尾,但我不知道如何在文本中间不删除该行。

是另一种方式比剪切第一个文件的两部分,然后创建一个文件添加第一部分新行然后第二部分,因为这感觉有点极端?

谢谢

+2

您可以使用http://stackoverflow.com/questions/289965/inserting-text-into-an-existing-file-via-java – nikli

在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); 
+0

你好,我想这是非常有用的使用这个,但我得到一个IDE错误“在配置的语言级别不可用的api的使用”。显然路径和文件被记录为1.6+,但我使用的Java版本1.7,所以它应该工作赖特?我真的不明白 – user3718160

+0

是的,这适用于Java 7,您正在使用哪种IDE? –

+0

InteliJ社区最后的版本 – user3718160

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

PD:你不能直接添加一行到文件,你只能读写数据,你必须在内存中操纵数据,然后再写入。

让我知道如果你