home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / java / util / zip / InflaterInputStream.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  1.8 KB  |  81 lines

  1. package java.util.zip;
  2.  
  3. import java.io.EOFException;
  4. import java.io.FilterInputStream;
  5. import java.io.IOException;
  6. import java.io.InputStream;
  7.  
  8. public class InflaterInputStream extends FilterInputStream {
  9.    protected Inflater inf;
  10.    protected byte[] buf;
  11.    protected int len;
  12.  
  13.    public InflaterInputStream(InputStream var1, Inflater var2, int var3) {
  14.       super(var1);
  15.       this.inf = var2;
  16.       this.buf = new byte[var3];
  17.    }
  18.  
  19.    public InflaterInputStream(InputStream var1, Inflater var2) {
  20.       this(var1, var2, 512);
  21.    }
  22.  
  23.    public InflaterInputStream(InputStream var1) {
  24.       this(var1, new Inflater());
  25.    }
  26.  
  27.    public int read() throws IOException {
  28.       byte[] var1 = new byte[1];
  29.       return this.read(var1, 0, 1) == -1 ? -1 : var1[0] & 255;
  30.    }
  31.  
  32.    public int read(byte[] var1, int var2, int var3) throws IOException {
  33.       if (var3 <= 0) {
  34.          return 0;
  35.       } else {
  36.          try {
  37.             int var4;
  38.             while((var4 = this.inf.inflate(var1, var2, var3)) == 0) {
  39.                if (this.inf.finished() || this.inf.needsDictionary()) {
  40.                   return -1;
  41.                }
  42.  
  43.                if (this.inf.needsInput()) {
  44.                   this.fill();
  45.                }
  46.             }
  47.  
  48.             return var4;
  49.          } catch (DataFormatException var6) {
  50.             String var5 = ((Throwable)var6).getMessage();
  51.             throw new ZipException(var5 != null ? var5 : "Invalid ZLIB data format");
  52.          }
  53.       }
  54.    }
  55.  
  56.    public long skip(long var1) throws IOException {
  57.       byte[] var3 = new byte[512];
  58.  
  59.       long var4;
  60.       long var8;
  61.       for(var4 = 0L; var4 < var1; var4 += var8) {
  62.          var8 = var1 - var4;
  63.          var8 = (long)this.read(var3, 0, var8 < (long)var3.length ? (int)var8 : var3.length);
  64.          if (var8 == -1L) {
  65.             break;
  66.          }
  67.       }
  68.  
  69.       return var4;
  70.    }
  71.  
  72.    protected void fill() throws IOException {
  73.       this.len = super.in.read(this.buf, 0, this.buf.length);
  74.       if (this.len == -1) {
  75.          throw new EOFException("Unexpected end of ZLIB input stream");
  76.       } else {
  77.          this.inf.setInput(this.buf, 0, this.len);
  78.       }
  79.    }
  80. }
  81.