我使用clojure.java.shell命令中的sh函数来读取命令的非常大的输出。输出的数据约为60mg。
基本上,数据是一个很大的字节数组,我只想把它转换成数字并放入向量中。
clojure.java.shell/sh将始终返回一个非惰性字符串
在BufferedReader上使用lazy line seq的解决方案(不处理关闭、环境传递和编码):
(->> (.exec (Runtime/getRuntime) "YOUR_LONG_RUNNING_COMMAND ARG ...") .getInputStream clojure.java.io/reader line-seq (map YOUR-FUNCTION))