2013-07-05 36 views
0

我想特定覆蓋從給定行開始的文件中的數據。覆蓋從java中的給定行開始的文件中的數據

假設我發現我必須在第x行的文件中寫入一些數據(我已經找到了x)。在那之後我將如何覆蓋所有內容。

還有一個函數,將直接採取我的行和字符串並覆蓋文件。

+0

最好的辦法是將文件的每一行加載到一個數組。覆蓋你不想要的數組部分,然後用數組覆蓋文件。 – zidsal

回答

1

另一種方法是,通過掃描儀類逐行讀取文件(如下所述),將這些行存儲到任何變量中,比如說arraylist,然後在讀取行後添加新的字符串,然後寫入整個列表成一個新的文件。

實施例:

File file = new File("file.txt"); 
Scanner scanner = new Scanner(file).useDelimiter("\n"); 
String line = scanner.next(); 
//Store in the list 
//Append the new lines 
//Write the whole list into a new file 
+0

對我來說,問題是我會閱讀一個大文件,只覆蓋一個小號碼。線。不會讀取整個文件效率低下?@darshan – Dave

+1

如果是大文件,您可以做的是逐行讀取文件,並將該行寫入新文件。一旦遇到需要更換的行,請用新行替換,然後跳過這些行並繼續讀取舊文件,直到遇到結束爲止。這樣它不會消耗更多的內存。 –

+0

謝謝:) @darshan – Dave