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. 我怎样才能得到Ganymed SSH库来尾尾文件(在Clojure中)?
- 3. 弹簧集成拖尾多个文件
- 4. java.lang.StackOverflowError的Clojure中尾递归
- 5. 在Clojure中写入文件
- 6. 拖放拖尾路径
- 7. 拖尾空间
- 8. Ruby On Rails 3.1中的拖尾日志文件
- 9. 从批处理文件输入中删除拖尾斜杠
- 10. Emacs中的文件自动刷新(不只是拖尾)
- 11. 在webview中拖放文件
- 12. Clojure中的尾部呼叫消除?
- 13. 的Clojure ::在外部文件
- 14. 写zip文件Clojure中
- 15. 如何使用SSIS在平面文件中创建拖尾记录
- 16. 在Erlang中拖尾二进制文件添加了神秘的位串
- 17. 新手在Clojure中转换CSV文件
- 18. 在Mod_rewrite中添加拖尾斜杠并在虚拟目录中重定向非拖尾斜杠
- 19. 在每件作品的末尾毫不拖延地加入mp3文件
- 20. 从我之前离开的地方拖尾文件?
- 21. 如何从外部程序的特定控件拖尾文本?
- 22. 拖尾越来越多的视频文件的最后一帧
- 23. 试图“拖尾”最新日志文件的问题
- 24. Clojure文件响应
- 25. Clojure:将Clojure文件转换为YAML
- 26. 消除拖尾0(和)
- 27. 删除拖尾换行
- 28. 在文件末尾写入
- 29. C++中的文件结尾
- 30. 在Graphics.drawImage拖尾影像()方法
感谢您的指针!出于某种原因,这似乎没有按预期行事 - 文件更改似乎没有被发现! – viksit 2010-12-02 22:29:53