我試圖實現一個日誌結構文件系統作爲操作系統分配。其中最新的數據放在文件的末尾。這就是爲什麼我要閱讀文本文件「逐行」在逆序。可能嗎?如何在Java中以自下而上的方式讀取文本文件?
回答
退房ReverseLineInputStream:
它指SO發佈的問題How to read file from end to start (in reverse order) in Java?
in = new BufferedReader (new InputStreamReader (new ReverseLineInputStream(file)));
while(true) {
String line = in.readLine();
if (line == null) {
break;
}
System.out.println("X:" + line);
}
(謝謝,@Mark O'Donohue)
令人印象深刻,我甚至不知道有這樣一個類:D +1 – BruceWayne
是的,但它需要先讀取整個文件。如果文件很長,可以做的是將文件分成幾個文件,將每個文件讀入內存,然後將數據寫入新文件,從最後一行到舊文件的第一行。操作完成後,您可以刪除您創建的所有臨時文件。
爲什麼downvote? –
我猜想,因爲這兩種解決方案是錯誤的(你不需要讀整個文件)或怪異的(爲什麼會有多個臨時文件?) –
當你需要通過文件到最後一行時你掃描它。如果原始文件很長,多個文件的原因是爲了減少在內存中存儲行的開銷。 –
如果它的一行行 - 你可以通過所有的行成一個ArrayList,然後使用反向for
循環讀取它的背景,如for(int i = list.size()-1;i>=0;i--)
好,但如果文件很長,仍然可能會給內存帶來沉重的負擔。 –
- 1. 如何在自下而上的PHP中讀取文件(更大)
- 2. 如何以自底向上的方式使用批處理方式讀取文本文件
- 3. FileNotFoundException - 在java中讀取文本文件
- 4. 在java中讀取文本文件
- 5. 如何以特定的方式讀取和處理文件中的文本?
- 6. 讀取文本文件中的Java-12
- 7. 在Java中逐行讀取文本文件的最快方法
- 8. S3中的通配符以Java方式讀取文件
- 9. 如何閱讀Java中的文本文件的下一行?
- 10. 如何讀取文本文件行變量而不是文本
- 11. 如何讀取.txt文件以長[] JAVA?
- 12. Java以特定模式讀取文件
- 13. 如何在Java中有序地讀取文本文件?
- 14. 如何在java中高效地讀取大文本文件
- 15. 從文本文件如何指定字符在Java中讀取
- 16. 如何從File對象在java中讀取文本文件
- 17. 如何使用Java從互聯網上讀取文本文件?
- 18. 如何從Java中的文本文件中讀取空集合
- 19. 如何將Java中的文本文件讀取到數組中
- 20. 如何以垂直或列方式讀取文本文件的數據
- 21. java-lotto從文本文件中讀取
- 22. 從文本文件中讀取(Java)
- 23. Java從文本文件中讀取
- 24. Java從文本文件中讀取值
- 25. 從文本文件Java中讀取行?
- 26. 如何在java中讀取json文件?
- 27. 如何在java中讀取xml文件
- 28. 以遞歸方式讀取文件夾中的所有文件Java
- 29. Java閱讀器,文本文件的讀取方法
- 30. 如何從Java中的文本文件讀取數據的GRID?
等等,爲什麼這是從頭到尾讀的理由? –
您可能需要自己動手:找到文件末尾,然後向後掃描換行符。 – jia103
@DaveNewton:因爲在基於日誌的文件系統(使用一次寫入策略)中,新數據和修改後的數據存儲在已寫入數據的末尾。在我的情況下在文件結束。 – Shaban