public int read(byte[] b, int off, int len) throws IOException { if (inf == null) throw new IOException("stream closed"); if (len == 0) return 0;  int count = 0; for (;;) {  try { count = inf.inflate(b, off, len); } catch (DataFormatException dfe) { throw new ZipException(dfe.getMessage()); }  if (count > 0) return count;  if (inf.needsDictionary() | inf.finished()) return -1; else if (inf.needsInput()) fill(); else throw new InternalError("Don't know what to do"); }
public int read() throws IOException { int nread = read(onebytebuffer, 0, 1); if (nread > 0) return onebytebuffer[0] & 0xff; return -1;
  public int read(byte[] b, int off, int len) throws IOException  {    if (inf == null)      throw new IOException("stream closed");    if (len == 0)      return 0;    int count = 0;    for (;;)      {		try	  {	    count = inf.inflate(b, off, len);	  } 	catch (DataFormatException dfe) 	  {	    throw new ZipException(dfe.getMessage());	  }	if (count > 0)	  return count;		if (inf.needsDictionary()	    | inf.finished())	  return -1;	else if (inf.needsInput())	  fill();	else	  throw new InternalError("Don't know what to do");      }  }