Ich habe mich mit dem Auslesen des Inhalts eines Ressourcenverzeichnisses in meinem Projekt beschäftigt. Ich verstehe jetzt (nach einer Weile es falsch zu machen) clojure.java.io/resource zu verwenden, um eine Ressource zu ziehen, weil nur das Dateisystem mit nicht funktioniert, wenn es als ein Glas verpackt ist:clojure: Entpacken einer als Ressource gespeicherten Zip-Datei
> (require '[clojure.java.io :as io])
> (def zipzip (.openStream (io/resource "zip.zip")))
Dies gibt eine BufferedInputStream
zurück. Ich möchte diese Zip-Datei entpacken und in ein lokales Verzeichnis entpacken. Ich kann kein ZipFile
daraus machen, aber ich kann ein ZipInputStream
machen. Leider, während ich ZipEntries
daraus bekommen kann, brauche ich eine ZipFile
, um tatsächlich den Inhalt der ZipEntry
zu lesen. Ich kann dies tun:
> (-> zipzip ZipInputStream. .getNextEntry .getName)
Dieser den Namen gibt, aber es gibt nichts in der API-Dokumentation den tatsächlichen Inhalt dieser ZipEntry
mit den ZipInputStream
zu bekommen!
Wie schreibe ich den Inhalt von diesem ZipInputStream
in ein lokales Verzeichnis? (das funktioniert auch, wenn der Code in ein Glas verpackt ist!)