现在我有
;; buffer->string: BufferedReader -> String
(defn buffer->string [buffer]
(loop [line (.readLine buffer) sb (StringBuilder.)]
(if(nil? line)
(.toString sb)
(recur (.readLine buffer) (.append sb line)))))
Run Code Online (Sandbox Code Playgroud)
这太慢了.
编辑:
我有一个BufferedReader
当我尝试做(str BufferedReader)它给了我"java.io.BufferedReader@1ce784b"
上面的循环太慢了,我的内存空间不足.
(clojure.contrib.duck-streams/slurp* your-buffer) ; is what you want
Run Code Online (Sandbox Code Playgroud)
您的代码很慢,因为缓冲区未被暗示.