私は自分のleinプロジェクトのリソースディレクトリの内容を読み取るのに苦労しています。jarとしてパッケージ化されている場合、ファイルシステムを使用するだけでは機能しないため、clojure.java.io / resourceを使用してリソースを引き出すことを(しばらく間間違って行った後)理解しました。
> (require '[clojure.java.io :as io])
> (def zipzip (.openStream (io/resource "zip.zip")))
これはを返しますBufferedInputStream
。私がやりたいのは、このzipファイルを取得してローカルディレクトリに解凍することです。私はそれから作ることはできませんがZipFile
、私は作ることができますZipInputStream
。残念ながら、私はこれから抜け出すことができますが、実際にの内容を読むZipEntries
必要があります。私がすることができます:ZipFile
ZipEntry
> (-> zipzip ZipInputStream. .getNextEntry .getName)
ZipEntry
これは名前を返しますが、APIドキュメントには、ZipInputStream
!を使用して実際の内容を取得するものはありません。
ZipInputStream
これからローカルディレクトリにコンテンツを書き出すにはどうすればよいですか?(これは、コードがjarにパッケージ化されている場合にも機能します!)