回答
一個文本文件中的行號是不是支持零成本重組。它只是一個連續的字節序列。如果要從文件中間刪除一些字節(並且通過暗示將所有後續字節移到覆蓋刪除的字節),則必須複製並重新寫入所有以下字節。
您有幾個選項。將整個文件讀入內存,執行刪除操作,然後將文件寫出。 (希望能夠在成功完成寫入之後將原始文件重命名爲臨時文件),或者只需從源文件中讀取數據緩衝區中的數據並做一些工作即可完成一些奇特的步驟。
感到抱歉我會做同樣的評論:不管語言如何,在文件中間刪除字節沒有任何魔力(在大部分操作系統我都知道,至少)。所以我只是給你的答案+1。 – PhiLho 2009-09-02 15:04:16
你可以閱讀整個文件中,做一個正則表達式替換(假設你知道確切的匹配等),然後寫入文件退出。
個人我不知道有多少價值的這個答案:)
這就像我解釋的方式。我不想讀寫。 – 2009-09-02 13:35:53
好吧,我誤解了你的問題 – 2009-09-02 22:50:00
好,如果你知道長度(或最後一行的內容):
long lastLineLength = lastLine.length();
RandomAccessFile raf = new RandomAccessFile("RandFile.txt", "rw");
long length = raf.length();
raf.setLength(length - lastLineLength);
raf.close();
解決方案是否需要用Java編寫? UNIX命令sed和grep僅用於此目的,並可能表現更好。如果您正在運行Windows,則可以通過Cygwin訪問這些工具,或者可能有本地端口。
我同意,但我懷疑這個問題應該有一個「家庭作業」標籤,因此它必須留在Java。 (請注意數字52O中的字母'O',而不是520. – 2009-09-02 14:06:49
對於O – 2009-09-02 14:24:02
是的。羅布是對的。 試試這個
sed -e '520d' <yourfile>
輸出重定向到新文件
這裏520是要刪除
- 1. 如何從java中的文本文件中刪除空行
- 2. 從Java中的文本文件中刪除特定行
- 3. Powershell - 從文本文件中刪除行
- 4. 從文本文件中刪除一行?
- 5. 從文本文件中刪除一行
- 6. 從文本文件中刪除行
- 7. 從文本文件中刪除多行
- 8. 從from.txt文件中刪除文本行
- 9. 從大文件中刪除一行php
- 10. 從文本文件中刪除文本
- 11. 從文本文件中刪除文本
- 12. 從另一個文件中的文本文件中刪除行
- 13. 從txt文件中刪除一行java
- 14. Java從文件中刪除行
- 15. 從Java文本文件中刪除特定行?
- 16. 難以從Java文本文件中刪除行
- 17. 如何從Java文本文件中刪除一行
- 18. 從文本文件(Python)中刪除大塊文本
- 19. 如何從VB6的文本文件中刪除一行文本?
- 20. 從文本文件中刪除包含特定文本的行
- 21. bash - 從文本文件中刪除多行不同的文本
- 22. 從Java文本組件中獲取已刪除的文本
- 23. 從文件中刪除行
- 24. 從文件中刪除行
- 25. 從文件中刪除行
- 26. 從java中的文本文件中刪除某個字符
- 27. 從Java中的文件中刪除文本
- 28. 刪除文本文件中的行
- 29. 刪除文本文件中的行
- 30. C++刪除文件中的文本行
你有沒有機會知道最後一行的內容? – stefita 2009-09-02 13:19:10
你知道這條線的位置嗎?或者你知道這條線是什麼樣的? – LB40 2009-09-02 13:44:36
我可以讓我的程序計算出行的位置,是的。 – 2009-09-02 13:54:09