如何使用 Clojure 从网络下载图像并将其保存到文件系统?我知道图像网址,并且我知道我无法使用 spit
和 slurp
来执行此操作,因为它是二进制数据,而不是文本。
我想尽可能简单地做到这一点,最好就像吐和吸吮的工作原理一样。也就是说,无需使用缓冲区或字节数组进行大量额外的行。我想在完成后关闭流,但我不在乎它是否效率低下。
最佳答案
何志同pointed我给this solution ,这最适合我的目的:
(defn copy [uri file]
(with-open [in (io/input-stream uri)
out (io/output-stream file)]
(io/copy in out)))
正如Zhitong所指出的,您需要在命名空间中使用(:require [clojure.java.io :as io])
才能按编码使用它。或者,您可以直接引用 clojure.java.io:
(defn copy-uri-to-file [uri file]
(with-open [in (clojure.java.io/input-stream uri)
out (clojure.java.io/output-stream file)]
(clojure.java.io/copy in out)))
关于clojure - 在 Clojure 中,如何从网络下载图像并将其保存到文件系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15628682/