gpt4 book ai didi

file-io - 在 Clojure 中拖尾文件?

转载 作者:行者123 更新时间:2023-12-03 14:51:49 25 4
gpt4 key购买 nike

在 Clojure 中拖尾文件的最佳方法是什么?我还没有遇到任何有助于做到这一点的实用程序,但是关于如何构建一个实用程序的想法将不胜感激!

谢谢。

最佳答案

正如 kotarak 所说,你可以使用 随机访问文件 寻找到文件的末尾。不幸的是,您必须忙于等待/ sleep 以进行更改。

使用惰性序列,您可以“即时”处理这些行:

(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"))

更新:

类似tail -f/var/log/mail.log -n 0 的东西,使用doseq,因此实际消耗了更改。
(doseq [line (tail-seq "/var/log/mail.log")] (println line))

关于file-io - 在 Clojure 中拖尾文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4332431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com