home *** CD-ROM | disk | FTP | other *** search
/ Dynamic HTML Construction Kit / Dynamic HTML Construction Kit.iso / earthlink / nscomm / java40.jar / java / io / DataOutputStream.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  2.2 KB  |  148 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.    public synchronized void write(int var1) throws IOException {
  11.       super.out.write(var1);
  12.       ++this.written;
  13.    }
  14.  
  15.    public synchronized void write(byte[] var1, int var2, int var3) throws IOException {
  16.       super.out.write(var1, var2, var3);
  17.       this.written += var3;
  18.    }
  19.  
  20.    public void flush() throws IOException {
  21.       super.out.flush();
  22.    }
  23.  
  24.    public final void writeBoolean(boolean var1) throws IOException {
  25.       super.out.write(var1 ? 1 : 0);
  26.       ++this.written;
  27.    }
  28.  
  29.    public final void writeByte(int var1) throws IOException {
  30.       super.out.write(var1);
  31.       ++this.written;
  32.    }
  33.  
  34.    public final void writeShort(int var1) throws IOException {
  35.       OutputStream var2 = super.out;
  36.       var2.write(var1 >>> 8 & 255);
  37.       var2.write(var1 & 255);
  38.       this.written += 2;
  39.    }
  40.  
  41.    public final void writeChar(int var1) throws IOException {
  42.       OutputStream var2 = super.out;
  43.       var2.write(var1 >>> 8 & 255);
  44.       var2.write(var1 & 255);
  45.       this.written += 2;
  46.    }
  47.  
  48.    public final void writeInt(int var1) throws IOException {
  49.       OutputStream var2 = super.out;
  50.       var2.write(var1 >>> 24 & 255);
  51.       var2.write(var1 >>> 16 & 255);
  52.       var2.write(var1 >>> 8 & 255);
  53.       var2.write(var1 & 255);
  54.       this.written += 4;
  55.    }
  56.  
  57.    public final void writeLong(long var1) throws IOException {
  58.       OutputStream var3 = super.out;
  59.       var3.write((int)(var1 >>> 56) & 255);
  60.       var3.write((int)(var1 >>> 48) & 255);
  61.       var3.write((int)(var1 >>> 40) & 255);
  62.       var3.write((int)(var1 >>> 32) & 255);
  63.       var3.write((int)(var1 >>> 24) & 255);
  64.       var3.write((int)(var1 >>> 16) & 255);
  65.       var3.write((int)(var1 >>> 8) & 255);
  66.       var3.write((int)var1 & 255);
  67.       this.written += 8;
  68.    }
  69.  
  70.    public final void writeFloat(float var1) throws IOException {
  71.       this.writeInt(Float.floatToIntBits(var1));
  72.    }
  73.  
  74.    public final void writeDouble(double var1) throws IOException {
  75.       this.writeLong(Double.doubleToLongBits(var1));
  76.    }
  77.  
  78.    public final void writeBytes(String var1) throws IOException {
  79.       OutputStream var2 = super.out;
  80.       int var3 = var1.length();
  81.  
  82.       for(int var4 = 0; var4 < var3; ++var4) {
  83.          var2.write((byte)var1.charAt(var4));
  84.       }
  85.  
  86.       this.written += var3;
  87.    }
  88.  
  89.    public final void writeChars(String var1) throws IOException {
  90.       OutputStream var2 = super.out;
  91.       int var3 = var1.length();
  92.  
  93.       for(int var4 = 0; var4 < var3; ++var4) {
  94.          char var5 = var1.charAt(var4);
  95.          var2.write(var5 >>> 8 & 255);
  96.          var2.write(var5 & 255);
  97.       }
  98.  
  99.       this.written += var3 * 2;
  100.    }
  101.  
  102.    public final void writeUTF(String var1) throws IOException {
  103.       OutputStream var2 = super.out;
  104.       int var3 = var1.length();
  105.       int var4 = 0;
  106.  
  107.       for(int var5 = 0; var5 < var3; ++var5) {
  108.          char var6 = var1.charAt(var5);
  109.          if (var6 >= 1 && var6 <= 127) {
  110.             ++var4;
  111.          } else if (var6 > 2047) {
  112.             var4 += 3;
  113.          } else {
  114.             var4 += 2;
  115.          }
  116.       }
  117.  
  118.       if (var4 > 65535) {
  119.          throw new UTFDataFormatException();
  120.       } else {
  121.          var2.write(var4 >>> 8 & 255);
  122.          var2.write(var4 & 255);
  123.  
  124.          for(int var8 = 0; var8 < var3; ++var8) {
  125.             char var7 = var1.charAt(var8);
  126.             if (var7 >= 1 && var7 <= 127) {
  127.                var2.write(var7);
  128.             } else if (var7 > 2047) {
  129.                var2.write(224 | var7 >> 12 & 15);
  130.                var2.write(128 | var7 >> 6 & 63);
  131.                var2.write(128 | var7 & 63);
  132.                this.written += 2;
  133.             } else {
  134.                var2.write(192 | var7 >> 6 & 31);
  135.                var2.write(128 | var7 & 63);
  136.                ++this.written;
  137.             }
  138.          }
  139.  
  140.          this.written += var3 + 2;
  141.       }
  142.    }
  143.  
  144.    public final int size() {
  145.       return this.written;
  146.    }
  147. }
  148.