home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 25 / CDROM25.iso / Share / prog / VJ11 / VJTRIAL.EXE / IE30Java.exe / classd.exe / java / io / DataOutputStream.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-01-27  |  2.4 KB  |  169 lines

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