如何使用 Clojure 从 Web 下载图像并将其保存到文件系统?我知道图像 url,并且我知道我不能使用spit
和slurp
执行此操作,因为它是二进制数据,而不是文本。
我想尽可能简单地做到这一点,理想情况下就像唾液和啜饮的工作方式一样。也就是说,没有大量使用缓冲区或字节数组的额外行。我想在完成后关闭流,但我不在乎它是否效率低下。
如何使用 Clojure 从 Web 下载图像并将其保存到文件系统?我知道图像 url,并且我知道我不能使用spit
和slurp
执行此操作,因为它是二进制数据,而不是文本。
我想尽可能简单地做到这一点,理想情况下就像唾液和啜饮的工作方式一样。也就是说,没有大量使用缓冲区或字节数组的额外行。我想在完成后关闭流,但我不在乎它是否效率低下。
(defn copy [uri file]
(with-open [in (io/input-stream uri)
out (io/output-stream file)]
(io/copy in out)))
正如智通所说,你需要(: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)))