home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / java / io / DataInputStream.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  3.0 KB  |  243 lines

  1. package java.io;
  2.  
  3. public class DataInputStream extends FilterInputStream implements DataInput {
  4.    private char[] lineBuffer;
  5.  
  6.    public DataInputStream(InputStream var1) {
  7.       super(var1);
  8.    }
  9.  
  10.    public final int read(byte[] var1) throws IOException {
  11.       return super.in.read(var1, 0, var1.length);
  12.    }
  13.  
  14.    public final int read(byte[] var1, int var2, int var3) throws IOException {
  15.       return super.in.read(var1, var2, var3);
  16.    }
  17.  
  18.    public final void readFully(byte[] var1) throws IOException {
  19.       this.readFully(var1, 0, var1.length);
  20.    }
  21.  
  22.    public final void readFully(byte[] var1, int var2, int var3) throws IOException {
  23.       if (var3 < 0) {
  24.          throw new IndexOutOfBoundsException();
  25.       } else {
  26.          InputStream var4 = super.in;
  27.  
  28.          int var6;
  29.          for(int var5 = 0; var5 < var3; var5 += var6) {
  30.             var6 = var4.read(var1, var2 + var5, var3 - var5);
  31.             if (var6 < 0) {
  32.                throw new EOFException();
  33.             }
  34.          }
  35.  
  36.       }
  37.    }
  38.  
  39.    public final int skipBytes(int var1) throws IOException {
  40.       InputStream var2 = super.in;
  41.       int var3 = 0;
  42.  
  43.       int var5;
  44.       for(var5 = 0; var3 < var1 && (var5 = (int)var2.skip((long)(var1 - var3))) > 0; var3 += var5) {
  45.       }
  46.  
  47.       return var3;
  48.    }
  49.  
  50.    public final boolean readBoolean() throws IOException {
  51.       int var1 = super.in.read();
  52.       if (var1 < 0) {
  53.          throw new EOFException();
  54.       } else {
  55.          return var1 != 0;
  56.       }
  57.    }
  58.  
  59.    public final byte readByte() throws IOException {
  60.       int var1 = super.in.read();
  61.       if (var1 < 0) {
  62.          throw new EOFException();
  63.       } else {
  64.          return (byte)var1;
  65.       }
  66.    }
  67.  
  68.    public final int readUnsignedByte() throws IOException {
  69.       int var1 = super.in.read();
  70.       if (var1 < 0) {
  71.          throw new EOFException();
  72.       } else {
  73.          return var1;
  74.       }
  75.    }
  76.  
  77.    public final short readShort() throws IOException {
  78.       InputStream var1 = super.in;
  79.       int var2 = var1.read();
  80.       int var3 = var1.read();
  81.       if ((var2 | var3) < 0) {
  82.          throw new EOFException();
  83.       } else {
  84.          return (short)((var2 << 8) + (var3 << 0));
  85.       }
  86.    }
  87.  
  88.    public final int readUnsignedShort() throws IOException {
  89.       InputStream var1 = super.in;
  90.       int var2 = var1.read();
  91.       int var3 = var1.read();
  92.       if ((var2 | var3) < 0) {
  93.          throw new EOFException();
  94.       } else {
  95.          return (var2 << 8) + (var3 << 0);
  96.       }
  97.    }
  98.  
  99.    public final char readChar() throws IOException {
  100.       InputStream var1 = super.in;
  101.       int var2 = var1.read();
  102.       int var3 = var1.read();
  103.       if ((var2 | var3) < 0) {
  104.          throw new EOFException();
  105.       } else {
  106.          return (char)((var2 << 8) + (var3 << 0));
  107.       }
  108.    }
  109.  
  110.    public final int readInt() throws IOException {
  111.       InputStream var1 = super.in;
  112.       int var2 = var1.read();
  113.       int var3 = var1.read();
  114.       int var4 = var1.read();
  115.       int var5 = var1.read();
  116.       if ((var2 | var3 | var4 | var5) < 0) {
  117.          throw new EOFException();
  118.       } else {
  119.          return (var2 << 24) + (var3 << 16) + (var4 << 8) + (var5 << 0);
  120.       }
  121.    }
  122.  
  123.    public final long readLong() throws IOException {
  124.       InputStream var1 = super.in;
  125.       return ((long)this.readInt() << 32) + ((long)this.readInt() & 4294967295L);
  126.    }
  127.  
  128.    public final float readFloat() throws IOException {
  129.       return Float.intBitsToFloat(this.readInt());
  130.    }
  131.  
  132.    public final double readDouble() throws IOException {
  133.       return Double.longBitsToDouble(this.readLong());
  134.    }
  135.  
  136.    public final String readLine() throws IOException {
  137.       InputStream var1 = super.in;
  138.       char[] var2 = this.lineBuffer;
  139.       if (var2 == null) {
  140.          var2 = this.lineBuffer = new char[128];
  141.       }
  142.  
  143.       int var3 = var2.length;
  144.       int var4 = 0;
  145.  
  146.       while(true) {
  147.          int var5;
  148.          switch (var5 = var1.read()) {
  149.             case 13:
  150.                int var6 = var1.read();
  151.                if (var6 != 10 && var6 != -1) {
  152.                   if (!(var1 instanceof PushbackInputStream)) {
  153.                      var1 = super.in = new PushbackInputStream(var1);
  154.                   }
  155.  
  156.                   ((PushbackInputStream)var1).unread(var6);
  157.                }
  158.             case -1:
  159.             case 10:
  160.                if (var5 == -1 && var4 == 0) {
  161.                   return null;
  162.                }
  163.  
  164.                return String.copyValueOf(var2, 0, var4);
  165.          }
  166.  
  167.          --var3;
  168.          if (var3 < 0) {
  169.             var2 = new char[var4 + 128];
  170.             var3 = var2.length - var4 - 1;
  171.             System.arraycopy(this.lineBuffer, 0, var2, 0, var4);
  172.             this.lineBuffer = var2;
  173.          }
  174.  
  175.          var2[var4++] = (char)var5;
  176.       }
  177.    }
  178.  
  179.    public final String readUTF() throws IOException {
  180.       return readUTF(this);
  181.    }
  182.  
  183.    public static final String readUTF(DataInput var0) throws IOException {
  184.       int var1 = var0.readUnsignedShort();
  185.       StringBuffer var2 = new StringBuffer(var1);
  186.       byte[] var3 = new byte[var1];
  187.       int var7 = 0;
  188.       var0.readFully(var3, 0, var1);
  189.  
  190.       while(var7 < var1) {
  191.          int var4 = var3[var7] & 255;
  192.          switch (var4 >> 4) {
  193.             case 0:
  194.             case 1:
  195.             case 2:
  196.             case 3:
  197.             case 4:
  198.             case 5:
  199.             case 6:
  200.             case 7:
  201.                ++var7;
  202.                var2.append((char)var4);
  203.                break;
  204.             case 8:
  205.             case 9:
  206.             case 10:
  207.             case 11:
  208.             default:
  209.                throw new UTFDataFormatException();
  210.             case 12:
  211.             case 13:
  212.                var7 += 2;
  213.                if (var7 > var1) {
  214.                   throw new UTFDataFormatException();
  215.                }
  216.  
  217.                byte var8 = var3[var7 - 1];
  218.                if ((var8 & 192) != 128) {
  219.                   throw new UTFDataFormatException();
  220.                }
  221.  
  222.                var2.append((char)((var4 & 31) << 6 | var8 & 63));
  223.                break;
  224.             case 14:
  225.                var7 += 3;
  226.                if (var7 > var1) {
  227.                   throw new UTFDataFormatException();
  228.                }
  229.  
  230.                byte var5 = var3[var7 - 2];
  231.                byte var6 = var3[var7 - 1];
  232.                if ((var5 & 192) != 128 || (var6 & 192) != 128) {
  233.                   throw new UTFDataFormatException();
  234.                }
  235.  
  236.                var2.append((char)((var4 & 15) << 12 | (var5 & 63) << 6 | (var6 & 63) << 0));
  237.          }
  238.       }
  239.  
  240.       return new String(var2);
  241.    }
  242. }
  243.