home *** CD-ROM | disk | FTP | other *** search
- package java.io;
-
- public class DataOutputStream extends FilterOutputStream implements DataOutput {
- protected int written;
-
- public DataOutputStream(OutputStream var1) {
- super(var1);
- }
-
- private void incCount(int var1) {
- int var2 = this.written + var1;
- if (var2 < 0) {
- var2 = Integer.MAX_VALUE;
- }
-
- this.written = var2;
- }
-
- public synchronized void write(int var1) throws IOException {
- super.out.write(var1);
- this.incCount(1);
- }
-
- public synchronized void write(byte[] var1, int var2, int var3) throws IOException {
- super.out.write(var1, var2, var3);
- this.incCount(var3);
- }
-
- public void flush() throws IOException {
- super.out.flush();
- }
-
- public final void writeBoolean(boolean var1) throws IOException {
- super.out.write(var1 ? 1 : 0);
- this.incCount(1);
- }
-
- public final void writeByte(int var1) throws IOException {
- super.out.write(var1);
- this.incCount(1);
- }
-
- public final void writeShort(int var1) throws IOException {
- OutputStream var2 = super.out;
- var2.write(var1 >>> 8 & 255);
- var2.write(var1 >>> 0 & 255);
- this.incCount(2);
- }
-
- public final void writeChar(int var1) throws IOException {
- OutputStream var2 = super.out;
- var2.write(var1 >>> 8 & 255);
- var2.write(var1 >>> 0 & 255);
- this.incCount(2);
- }
-
- public final void writeInt(int var1) throws IOException {
- OutputStream var2 = super.out;
- var2.write(var1 >>> 24 & 255);
- var2.write(var1 >>> 16 & 255);
- var2.write(var1 >>> 8 & 255);
- var2.write(var1 >>> 0 & 255);
- this.incCount(4);
- }
-
- public final void writeLong(long var1) throws IOException {
- OutputStream var3 = super.out;
- var3.write((int)(var1 >>> 56) & 255);
- var3.write((int)(var1 >>> 48) & 255);
- var3.write((int)(var1 >>> 40) & 255);
- var3.write((int)(var1 >>> 32) & 255);
- var3.write((int)(var1 >>> 24) & 255);
- var3.write((int)(var1 >>> 16) & 255);
- var3.write((int)(var1 >>> 8) & 255);
- var3.write((int)(var1 >>> 0) & 255);
- this.incCount(8);
- }
-
- public final void writeFloat(float var1) throws IOException {
- this.writeInt(Float.floatToIntBits(var1));
- }
-
- public final void writeDouble(double var1) throws IOException {
- this.writeLong(Double.doubleToLongBits(var1));
- }
-
- public final void writeBytes(String var1) throws IOException {
- OutputStream var2 = super.out;
- int var3 = var1.length();
-
- for(int var4 = 0; var4 < var3; ++var4) {
- var2.write((byte)var1.charAt(var4));
- }
-
- this.incCount(var3);
- }
-
- public final void writeChars(String var1) throws IOException {
- OutputStream var2 = super.out;
- int var3 = var1.length();
-
- for(int var4 = 0; var4 < var3; ++var4) {
- char var5 = var1.charAt(var4);
- var2.write(var5 >>> 8 & 255);
- var2.write(var5 >>> 0 & 255);
- }
-
- this.incCount(var3 * 2);
- }
-
- public final void writeUTF(String var1) throws IOException {
- writeUTF(var1, this);
- }
-
- static int writeUTF(String var0, DataOutput var1) throws IOException {
- int var2 = var0.length();
- int var3 = 0;
- char[] var4 = new char[var2];
- int var6 = 0;
- var0.getChars(0, var2, var4, 0);
-
- for(int var7 = 0; var7 < var2; ++var7) {
- char var5 = var4[var7];
- if (var5 >= 1 && var5 <= 127) {
- ++var3;
- } else if (var5 > 2047) {
- var3 += 3;
- } else {
- var3 += 2;
- }
- }
-
- if (var3 > 65535) {
- throw new UTFDataFormatException();
- } else {
- byte[] var8 = new byte[var3 + 2];
- var8[var6++] = (byte)(var3 >>> 8 & 255);
- var8[var6++] = (byte)(var3 >>> 0 & 255);
-
- for(int var9 = 0; var9 < var2; ++var9) {
- char var10 = var4[var9];
- if (var10 >= 1 && var10 <= 127) {
- var8[var6++] = (byte)var10;
- } else if (var10 > 2047) {
- var8[var6++] = (byte)(224 | var10 >> 12 & 15);
- var8[var6++] = (byte)(128 | var10 >> 6 & 63);
- var8[var6++] = (byte)(128 | var10 >> 0 & 63);
- } else {
- var8[var6++] = (byte)(192 | var10 >> 6 & 31);
- var8[var6++] = (byte)(128 | var10 >> 0 & 63);
- }
- }
-
- var1.write(var8);
- return var3 + 2;
- }
- }
-
- public final int size() {
- return this.written;
- }
- }
-