17

Webから画像をダウンロードし、Clojureを使用してファイルシステムに保存するにはどうすればよいですか?私は画像のURLを知っていますが、テキストではなくバイナリデータであるため、これを使用spitおよび実行できないことを認識しています。slurp

私はこれをできるだけ簡単に行いたいと思います。理想的には、唾と丸呑みがどのように機能するかが好きです。つまり、バッファやバイト配列を使用して余分な行をたくさん使用する必要はありません。終わったらストリームを閉じたいのですが、それが非効率的であるかどうかは気にしません。

4

1 に答える 1

27

Zhitong彼は私にこの解決策を指摘しました、それは私の目的のために最もよく働きました:

 (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)))
于 2013-10-10T13:54:57.087 に答える