代码之家  ›  专栏  ›  技术社区  ›  nkassis

用clojure读取大型命令输出

  •  3
  • nkassis  · 技术社区  · 14 年前

    我使用clojure.java.shell命令中的sh函数来读取命令的非常大的输出。输出的数据约为60mg。

    基本上,数据是一个很大的字节数组,我只想把它转换成数字并放入向量中。

    1 回复  |  直到 14 年前
        1
  •  3
  •   Jürgen Hötzel    14 年前

    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))
    
    推荐文章