2016-05-17 84 views
5

我想知道是否有可能在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

回答

6

在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

0

你可以閱讀您的文件到一個ArrayList,你可以在任何位置添加元素,並操縱所有元素及其數據,然後你可以再次寫入文件。

PD:你不能直接添加一行到文件,你只能讀寫數據,你必須在內存中操縱數據,然後再寫入。

讓我知道如果你

相關問題