9
A
回答
12
由於kotarak說,你可以使用的RandomAccessFile尋求到文件的末尾。不幸的是,你必須忙於等待/休息以適應變化。
使用一個懶惰的序列您可以處理 「的即時」 的臺詞:
(import java.io.RandomAccessFile)
(defn raf-seq
[#^RandomAccessFile raf]
(if-let [line (.readLine raf)]
(lazy-seq (cons line (raf-seq raf)))
(do (Thread/sleep 1000)
(recur raf))))
(defn tail-seq [input]
(let [raf (RandomAccessFile. input "r")]
(.seek raf (.length raf))
(raf-seq raf)))
; Read the next 10 lines
(take 10 (tail-seq "/var/log/mail.log"))
更新:
喜歡的東西尾-f /var/log/mail.log -n 0,使用doseq,所以變化實際上被消耗。
(doseq [line (tail-seq "/var/log/mail.log")] (println line))
2
喜歡的東西:
(take-last 10 (line-seq (clojure.contrib.io/reader "file")))
3
您可以使用RandomAccessFile
直接尋找到文件的末尾,並從那裏尋找換行符。不像take-last
方法那樣優雅和簡短,但也不是O(n)
,這對於大文件大小可能很重要。
雖然沒有解決方案tail -f
。一些靈感可能在JLogTailer中找到。
相關問題
- 1. 拖尾滾動文件
- 2. 退出拖尾文件 - 在perl
- 3. 我怎樣才能得到Ganymed SSH庫來尾尾文件(在Clojure中)?
- 4. 彈簧集成拖尾多個文件
- 5. Scala拖尾文件的方式
- 6. java.lang.StackOverflowError的Clojure中尾遞歸
- 7. clojure中的尾遞歸
- 8. 在clojure中壓縮文件
- 9. 拖放拖尾路徑
- 10. 拖尾空間
- 11. 在Groovy中尾部文件
- 12. Ruby On Rails 3.1中的拖尾日誌文件
- 13. Emacs中的文件自動刷新(不只是拖尾)
- 14. 從批處理文件輸入中刪除拖尾斜槓
- 15. 在webview中拖放文件
- 16. Clojure中的尾部呼叫消除?
- 17. Clojure的文件
- 18. 寫zip文件Clojure中
- 19. 的Clojure ::在外部文件
- 20. 爲什麼在python中讀取文本時會出現拖尾?
- 21. 新手在Clojure中轉換CSV文件
- 22. 如何使用SSIS在平面文件中創建拖尾記錄
- 23. 在Erlang中拖尾二進制文件添加了神祕的位串
- 24. 如何在平面輸出文件中提取行數到拖尾記錄
- 25. 在Mod_rewrite中添加拖尾斜槓並在虛擬目錄中重定向非拖尾斜槓
- 26. 在每件作品的末尾毫不拖延地加入mp3文件
- 27. Clojure文件響應
- 28. 文件拖尾不能使用Apache Commons的TailerListenerAdapter io
- 29. Python - 拖尾日誌文件 - 睡眠()與inotify?
- 30. 從我之前離開的地方拖尾文件?
感謝您的指針!出於某種原因,這似乎沒有按預期行事 - 文件更改似乎沒有被發現! – viksit 2010-12-02 22:29:53