home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / io / ObjectInputStream$PeekInputStream.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  1.0 KB  |  74 lines

  1. package java.io;
  2.  
  3. class ObjectInputStream$PeekInputStream extends InputStream {
  4.    // $FF: renamed from: in java.io.InputStream
  5.    private final InputStream field_0;
  6.    private int peekb = -1;
  7.  
  8.    ObjectInputStream$PeekInputStream(InputStream var1) {
  9.       this.field_0 = var1;
  10.    }
  11.  
  12.    int peek() throws IOException {
  13.       return this.peekb >= 0 ? this.peekb : (this.peekb = this.field_0.read());
  14.    }
  15.  
  16.    public int read() throws IOException {
  17.       if (this.peekb >= 0) {
  18.          int var1 = this.peekb;
  19.          this.peekb = -1;
  20.          return var1;
  21.       } else {
  22.          return this.field_0.read();
  23.       }
  24.    }
  25.  
  26.    public int read(byte[] var1, int var2, int var3) throws IOException {
  27.       if (var3 == 0) {
  28.          return 0;
  29.       } else if (this.peekb < 0) {
  30.          return this.field_0.read(var1, var2, var3);
  31.       } else {
  32.          var1[var2++] = (byte)this.peekb;
  33.          --var3;
  34.          this.peekb = -1;
  35.          int var4 = this.field_0.read(var1, var2, var3);
  36.          return var4 >= 0 ? var4 + 1 : 1;
  37.       }
  38.    }
  39.  
  40.    void readFully(byte[] var1, int var2, int var3) throws IOException {
  41.       int var5;
  42.       for(int var4 = 0; var4 < var3; var4 += var5) {
  43.          var5 = this.read(var1, var2 + var4, var3 - var4);
  44.          if (var5 < 0) {
  45.             throw new EOFException();
  46.          }
  47.       }
  48.  
  49.    }
  50.  
  51.    public long skip(long var1) throws IOException {
  52.       if (var1 <= 0L) {
  53.          return 0L;
  54.       } else {
  55.          int var3 = 0;
  56.          if (this.peekb >= 0) {
  57.             this.peekb = -1;
  58.             ++var3;
  59.             --var1;
  60.          }
  61.  
  62.          return (long)var3 + this.skip(var1);
  63.       }
  64.    }
  65.  
  66.    public int available() throws IOException {
  67.       return this.field_0.available() + (this.peekb >= 0 ? 1 : 0);
  68.    }
  69.  
  70.    public void close() throws IOException {
  71.       this.field_0.close();
  72.    }
  73. }
  74.