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 / DataOutputStream.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  2.3 KB  |  163 lines

  1. package java.io;
  2.  
  3. public class DataOutputStream extends FilterOutputStream implements DataOutput {
  4.    protected int written;
  5.  
  6.    public DataOutputStream(OutputStream var1) {
  7.       super(var1);
  8.    }
  9.  
  10.    private void incCount(int var1) {
  11.       int var2 = this.written + var1;
  12.       if (var2 < 0) {
  13.          var2 = Integer.MAX_VALUE;
  14.       }
  15.  
  16.       this.written = var2;
  17.    }
  18.  
  19.    public synchronized void write(int var1) throws IOException {
  20.       super.out.write(var1);
  21.       this.incCount(1);
  22.    }
  23.  
  24.    public synchronized void write(byte[] var1, int var2, int var3) throws IOException {
  25.       super.out.write(var1, var2, var3);
  26.       this.incCount(var3);
  27.    }
  28.  
  29.    public void flush() throws IOException {
  30.       super.out.flush();
  31.    }
  32.  
  33.    public final void writeBoolean(boolean var1) throws IOException {
  34.       super.out.write(var1 ? 1 : 0);
  35.       this.incCount(1);
  36.    }
  37.  
  38.    public final void writeByte(int var1) throws IOException {
  39.       super.out.write(var1);
  40.       this.incCount(1);
  41.    }
  42.  
  43.    public final void writeShort(int var1) throws IOException {
  44.       OutputStream var2 = super.out;
  45.       var2.write(var1 >>> 8 & 255);
  46.       var2.write(var1 >>> 0 & 255);
  47.       this.incCount(2);
  48.    }
  49.  
  50.    public final void writeChar(int var1) throws IOException {
  51.       OutputStream var2 = super.out;
  52.       var2.write(var1 >>> 8 & 255);
  53.       var2.write(var1 >>> 0 & 255);
  54.       this.incCount(2);
  55.    }
  56.  
  57.    public final void writeInt(int var1) throws IOException {
  58.       OutputStream var2 = super.out;
  59.       var2.write(var1 >>> 24 & 255);
  60.       var2.write(var1 >>> 16 & 255);
  61.       var2.write(var1 >>> 8 & 255);
  62.       var2.write(var1 >>> 0 & 255);
  63.       this.incCount(4);
  64.    }
  65.  
  66.    public final void writeLong(long var1) throws IOException {
  67.       OutputStream var3 = super.out;
  68.       var3.write((int)(var1 >>> 56) & 255);
  69.       var3.write((int)(var1 >>> 48) & 255);
  70.       var3.write((int)(var1 >>> 40) & 255);
  71.       var3.write((int)(var1 >>> 32) & 255);
  72.       var3.write((int)(var1 >>> 24) & 255);
  73.       var3.write((int)(var1 >>> 16) & 255);
  74.       var3.write((int)(var1 >>> 8) & 255);
  75.       var3.write((int)(var1 >>> 0) & 255);
  76.       this.incCount(8);
  77.    }
  78.  
  79.    public final void writeFloat(float var1) throws IOException {
  80.       this.writeInt(Float.floatToIntBits(var1));
  81.    }
  82.  
  83.    public final void writeDouble(double var1) throws IOException {
  84.       this.writeLong(Double.doubleToLongBits(var1));
  85.    }
  86.  
  87.    public final void writeBytes(String var1) throws IOException {
  88.       OutputStream var2 = super.out;
  89.       int var3 = var1.length();
  90.  
  91.       for(int var4 = 0; var4 < var3; ++var4) {
  92.          var2.write((byte)var1.charAt(var4));
  93.       }
  94.  
  95.       this.incCount(var3);
  96.    }
  97.  
  98.    public final void writeChars(String var1) throws IOException {
  99.       OutputStream var2 = super.out;
  100.       int var3 = var1.length();
  101.  
  102.       for(int var4 = 0; var4 < var3; ++var4) {
  103.          char var5 = var1.charAt(var4);
  104.          var2.write(var5 >>> 8 & 255);
  105.          var2.write(var5 >>> 0 & 255);
  106.       }
  107.  
  108.       this.incCount(var3 * 2);
  109.    }
  110.  
  111.    public final void writeUTF(String var1) throws IOException {
  112.       writeUTF(var1, this);
  113.    }
  114.  
  115.    static int writeUTF(String var0, DataOutput var1) throws IOException {
  116.       int var2 = var0.length();
  117.       int var3 = 0;
  118.       char[] var4 = new char[var2];
  119.       int var6 = 0;
  120.       var0.getChars(0, var2, var4, 0);
  121.  
  122.       for(int var7 = 0; var7 < var2; ++var7) {
  123.          char var5 = var4[var7];
  124.          if (var5 >= 1 && var5 <= 127) {
  125.             ++var3;
  126.          } else if (var5 > 2047) {
  127.             var3 += 3;
  128.          } else {
  129.             var3 += 2;
  130.          }
  131.       }
  132.  
  133.       if (var3 > 65535) {
  134.          throw new UTFDataFormatException();
  135.       } else {
  136.          byte[] var8 = new byte[var3 + 2];
  137.          var8[var6++] = (byte)(var3 >>> 8 & 255);
  138.          var8[var6++] = (byte)(var3 >>> 0 & 255);
  139.  
  140.          for(int var9 = 0; var9 < var2; ++var9) {
  141.             char var10 = var4[var9];
  142.             if (var10 >= 1 && var10 <= 127) {
  143.                var8[var6++] = (byte)var10;
  144.             } else if (var10 > 2047) {
  145.                var8[var6++] = (byte)(224 | var10 >> 12 & 15);
  146.                var8[var6++] = (byte)(128 | var10 >> 6 & 63);
  147.                var8[var6++] = (byte)(128 | var10 >> 0 & 63);
  148.             } else {
  149.                var8[var6++] = (byte)(192 | var10 >> 6 & 31);
  150.                var8[var6++] = (byte)(128 | var10 >> 0 & 63);
  151.             }
  152.          }
  153.  
  154.          var1.write(var8);
  155.          return var3 + 2;
  156.       }
  157.    }
  158.  
  159.    public final int size() {
  160.       return this.written;
  161.    }
  162. }
  163.