我正在寫一個Java程序,執行以下操作:如何在閱讀該行後逐個刪除文件中的所有行?
- 在一條線上從文件中讀取
- 是否基於該行
- 刪除線的一些動作(或
""
更換) ,如果2不成功,將其寫入到一個新的文件 - 繼續上對文件中的所有行的下一行(而不是刪除任意線)
薑黃素rently我:
try (BufferedReader br = new BufferedReader(new FileReader(inputFile))) {
String line;
while ((line = br.readLine()) != null) {
try {
if (!do_stuff(line)){ //do_stuff returns bool based on success
write_non_success(line);
}
} catch (Exception e) {
e.printStackTrace(); //eat the exception for now, do something in the future
}
}
很顯然,我將需要不使用一個BufferedReader這一點,因爲它不能寫,但我應該用什麼課?讀取順序並不重要
這與this question不同,因爲我想刪除所有行,而不是像其他OP所需的任意行號,並且如果可能,我想避免寫入臨時文件每行之後,因爲我的文件大約有一百萬行
您無法同時讀取和寫入文件。您需要在內存或文件系統中創建一個副本,然後寫出一個不同的文件。 –
您無法真正刪除該行。刪除一條線意味着將所有剩餘的文本進行物理移位,而您確實不想這樣做。 – Andreas