Mam problem z odczytaniem zawartości katalogu zasobów w moim projekcie lein. Rozumiem teraz (po zrobieniu to źle na chwilę) do korzystania clojure.java.io/resource wyciągnąć zasób, ponieważ tylko przy użyciu systemu plików nie działa, gdy jest zapakowany w słoiku:clojure: rozpakowywanie pliku zip przechowywanego jako zasób
> (require '[clojure.java.io :as io])
> (def zipzip (.openStream (io/resource "zip.zip")))
To zwraca wartość BufferedInputStream
. Co chcę zrobić, to wziąć ten plik zip i rozpakować go do lokalnego katalogu. Nie mogę z tego zrobić ZipFile
, ale mogę utworzyć ZipInputStream
. Niestety, podczas gdy mogę uzyskać ZipEntries
z tego, potrzebuję ZipFile
, aby rzeczywiście przeczytać zawartość ZipEntry
. Mogę to zrobić:
> (-> zipzip ZipInputStream. .getNextEntry .getName)
ta zwraca nazwę, ale nie ma nic w docs API, aby uzyskać rzeczywiste zawartość tego ZipEntry
z ZipInputStream
!
Jak zapisać zawartość z tego ZipInputStream
do katalogu lokalnego? (Działa to również, gdy kod jest pakowany do słoika!).