在java中,我会将整个文件读入字节数组并使用它进行一些处理。现在我想在clojure中实现相同的算法。
我想知道的是我可以使用列表而不是数组吗?
我知道我可以从clojure创建数组但是处理这个的lisp方法是什么?
在java中,我会将整个文件读入字节数组并使用它进行一些处理。现在我想在clojure中实现相同的算法。
我想知道的是我可以使用列表而不是数组吗?
我知道我可以从clojure创建数组但是处理这个的lisp方法是什么?
如果有问题的文件非常大,您应该始终考虑使用内存映射文件。 clojure.contrib.mmap
提供了一些处理它的功能。
我知道我可以从clojure创建数组但是处理这个的lisp方法是什么?
我不知道Lisp的方式,但是Clojure方法允许你在数组上使用序列函数,所以你不必在有效表示和舒适处理之间做出决定(在我看来,这是其中一个要点) Clojure如此务实)。
如果有问题的文件非常大,您应该始终考虑使用内存映射文件。 clojure.contrib.mmap
提供了一些处理它的功能。
我知道我可以从clojure创建数组但是处理这个的lisp方法是什么?
我不知道Lisp的方式,但是Clojure方法允许你在数组上使用序列函数,所以你不必在有效表示和舒适处理之间做出决定(在我看来,这是其中一个要点) Clojure如此务实)。
这是文件中字节的延迟序列,并在读取最后一个字节时关闭文件句柄。如果您使用由大文件提供的序列,请注意不要在任何地方抓住序列的头部,否则您将耗尽内存。如果您需要在错误情况下手动关闭它,可以保留文件句柄。
(defn byte-seq [rdr] (让[结果(.rdd读取)] (if(= result -1) (do(.rdr close)nil) (lazy-seq(cons result(byte-seq rdr))))))