使用clojure读取大型命令输出
我使用clojure.java.shell命令中的sh函数来读取命令的非常大的输出。输出的数据约为60毫克 我一直得到java.lang.OutOfMemoryError。有没有办法打开一种管道,让我读取输出并将其解析为向量。像命令输出的惰性序列使用clojure读取大型命令输出,clojure,clojure-contrib,Clojure,Clojure Contrib,我使用clojure.java.shell命令中的sh函数来读取命令的非常大的输出。输出的数据约为60毫克 我一直得到java.lang.OutOfMemoryError。有没有办法打开一种管道,让我读取输出并将其解析为向量。像命令输出的惰性序列 基本上,数据是一个大的字节数组,我只想将其转换为数字并放入向量中 clojure.java.shell/sh将始终返回非惰性字符串 在BufferedReader上使用lazy line seq的解决方案(不处理关闭、环境传递和编码): (->&
基本上,数据是一个大的字节数组,我只想将其转换为数字并放入向量中 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))