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