我一直在努力阅读我的 lein 项目中资源目录的内容。我现在明白(在做错了一段时间之后)使用 clojure.java.io/resource 来提取资源,因为仅使用文件系统在打包为 jar 时不起作用:
> (require '[clojure.java.io :as io])
> (def zipzip (.openStream (io/resource "zip.zip")))
这会返回一个BufferedInputStream
. 我想要做的是获取这个 zip 文件并将其解压缩到本地目录。我做不出ZipFile
来,但我可以做一个ZipInputStream
。不幸的是,虽然我可以ZipEntries
摆脱这种情况,但我需要ZipFile
真正阅读ZipEntry
. 我可以做这个:
> (-> zipzip ZipInputStream. .getNextEntry .getName)
这将返回名称,但 api 文档中没有任何内容可以ZipEntry
使用ZipInputStream
!
如何将其中的内容写出ZipInputStream
到本地目录?(当将代码打包到 jar 中时也可以使用!)