public void write(byte b[], int off, int len) throws IOException { if (len == 0) return; if (compress) { dos.write(b, off, len); } else { inflater.setInput(b, off, len, true); int err = JZlib.Z_OK; while (inflater.avail_in > 0) { inflater.setOutput(buf, 0, buf.length); err = inflater.inflate(flush); if (inflater.next_out_index > 0) out.write(buf, 0, inflater.next_out_index); if (err != JZlib.Z_OK) break; } if (err != JZlib.Z_OK) throw new ZStreamException("inflating: " + inflater.msg); return; } }