Tôi đang cố gắng đi vòng một chuỗi JSON thành một mảng byte với DeflaterOutputStream, nhưng mã bên dưới ném java.io.EOFException: Unexpected end of ZLIB input stream
.Kết thúc không mong đợi của luồng đầu vào ZLIB
Tính năng này hoạt động khi bạn thay thế chuỗi bằng "Hello world" hoặc nếu bạn xóa một vài ký tự khỏi chuỗi bên dưới.
Bất kỳ ý tưởng nào?
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());
}
phiên bản Java (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)
Vậy đó. Thêm các bản sửa lỗi sau đây: \t \t bytes.write (0); – slipheed
@slipheed: Rất vui khi biết điều đó :) –