के रूप में संग्रहीत एक ज़िप फ़ाइल को अनजिप करना मैं अपने लीन प्रोजेक्ट में संसाधन निर्देशिका की सामग्री को पढ़ने के साथ संघर्ष कर रहा हूं। अब मैं समझ एक संसाधन बाहर निकलने के लिए, क्योंकि सिर्फ फ़ाइल सिस्टम का उपयोग जब यह एक जार के रूप में पैक किया जाता है काम नहीं करता है clojure.java.io/resource उपयोग करने के लिए (गलत कुछ समय के लिए यह करने के बाद):क्लोजर: संसाधन
> (require '[clojure.java.io :as io])
> (def zipzip (.openStream (io/resource "zip.zip")))
यह BufferedInputStream
देता है। मैं जो करना चाहता हूं वह इस ज़िप फ़ाइल को लेना और इसे स्थानीय निर्देशिका में अनपैक करना है। मैं इसमें से ZipFile
नहीं बना सकता, लेकिन मैं ZipInputStream
बना सकता हूं। दुर्भाग्यवश, जबकि मैं ZipEntries
से प्राप्त कर सकता हूं, मुझे ZipEntry
की सामग्री को वास्तव में पढ़ने के लिए ZipFile
की आवश्यकता है। मैं यह कर सकता:
> (-> zipzip ZipInputStream. .getNextEntry .getName)
यह नाम देता है, लेकिन एपीआई डॉक्स में कुछ भी नहीं ZipInputStream
साथ कि ZipEntry
की वास्तविक सामग्री प्राप्त करने के लिए है!
मैं इस ZipInputStream
से स्थानीय निर्देशिका में सामग्री कैसे लिखूं? (यह भी काम करता है जब कोड को जार में पैक किया जाता है!)