मैं DeflaterOutputStream के साथ एक बाइट सरणी में JSON स्ट्रिंग को राउंड-ट्रिप करने का प्रयास कर रहा हूं, लेकिन java.io.EOFException: Unexpected end of ZLIB input stream
फेंकने वाला कोड नीचे दिया गया है।ZLIB इनपुट स्ट्रीम का अप्रत्याशित अंत
यह तब काम करता है जब आप "हैलो वर्ल्ड" के साथ स्ट्रिंग को प्रतिस्थापित करते हैं, या यदि आप नीचे स्ट्रिंग से कुछ वर्ण हटाते हैं।
कोई विचार?
public static void main(String[] args) throws IOException {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
DeflaterOutputStream deflate = new DeflaterOutputStream(bytes, new Deflater(Deflater.BEST_COMPRESSION, true));
OutputStreamWriter writer = new OutputStreamWriter(deflate);
writer.write("[1,null,null,\"a\",null,null,null,null,[1,null,null,null,null,null,null,null,null,null,null,null,null,0.0,0.0,null,null]");
writer.flush();
writer.close();
InflaterInputStream inflaterIn = new InflaterInputStream(new ByteArrayInputStream(bytes.toByteArray()), new Inflater(true));
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inflaterIn));
System.out.println(bufferedReader.readLine());
}
जावा संस्करण (OSX):
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-383-11A511)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-383, mixed mode)
यही है। निम्न को जोड़ना समस्या को हल करता है: \t \t bytes.write (0); – slipheed
@ स्लीफेड: इसे सुनकर खुशी हुई :) –