मैं इस JUnit परीक्षण के साथ अटक कर रहा हूँ:क्यों ZipInputStream ZipOutputStream के आउटपुट को नहीं पढ़ सकता है?
public void test() throws Exception {
ByteArrayOutputStream out = new ByteArrayOutputStream();
ZipOutputStream zipOut = new ZipOutputStream(out);
zipOut.putNextEntry(new ZipEntry("file"));
zipOut.write((new byte[] { 0x01, 0x02, 0x03 }));
zipOut.closeEntry();
zipOut.close();
ZipInputStream zipIn = new ZipInputStream(new ByteArrayInputStream(out.toByteArray()));
ZipEntry entry = zipIn.getNextEntry();
assertNotNull(entry);
assertEquals("file", entry.getName());
assertEquals(3, entry.getSize());
}
मैं नाम "फाइल" और एक ZipOutputStream को तीन बाइट्स की एक सामग्री के साथ एक फ़ाइल लिख रहा हूँ। फिर मैं एक ज़िपपूटस्ट्रीम के साथ बनाए गए डेटा को पढ़ने की कोशिश करता हूं, लेकिन अंतिम जोर विफल रहता है, क्योंकि entry.getSize()
-1
है और 3
नहीं है, जैसा कि अपेक्षित है।
मैं यहाँ क्या गलत कर रहा हूं? "फ़ाइल" की सामग्री को पुनर्स्थापित करने के लिए मुझे क्या बदलना है? मुझे लगता है, मुझे पहले स्ट्रीम से डेटा पढ़ने में सक्षम होने के लिए लंबाई जाननी है?
अपना कोड आजमाया - वास्तव में यह काम नहीं करता है। मैं परेशान हूँ जांच .. –
समझ गया। नीचे जवाब दें। –