1 32 package com.imagero.uio.io; 33 34 import java.io.ByteArrayOutputStream ; 35 import java.io.DataOutput ; 36 import java.io.DataOutputStream ; 37 import java.io.FilterOutputStream ; 38 import java.io.IOException ; 39 import java.io.OutputStream ; 40 41 49 public class LEDataOutputStream extends FilterOutputStream implements DataOutput { 50 51 public LEDataOutputStream(OutputStream out) { 52 super(out); 53 } 54 55 public final void writeShort(int value) throws IOException { 56 write(value & 0xFF); 57 write((value >> 8) & 0xFF); 58 } 59 60 public final void writeChar(int value) throws IOException { 61 write(value & 0xFF); 62 write((value >> 8) & 0xFF); 63 } 64 65 public final void writeInt(int value) throws IOException { 66 write(value & 0xFF); 67 write((value >> 8) & 0xFF); 68 write((value >> 16) & 0xFF); 69 write((value >> 24) & 0xFF); 70 } 71 72 public final void writeLong(long value) throws IOException { 73 writeInt((int)(value & 0xFFFFFFFF)); 74 writeInt((int)((value >> 32) & 0xFFFFFFFF)); 75 } 76 77 public final void writeFloat(float value) throws IOException { 78 writeInt(Float.floatToIntBits(value)); 79 } 80 81 public final void writeDouble(double value) throws IOException { 82 writeLong(Double.doubleToLongBits(value)); 83 } 84 85 public void writeBoolean(boolean b) throws IOException { 86 out.write(b ? 1 : 0); 87 } 88 89 public void writeByte(int v) throws IOException { 90 write(v); 91 } 92 93 public void writeBytes(String s) throws IOException { 94 int len = s.length(); 95 for (int i = 0 ; i < len ; i++) { 96 out.write((byte)s.charAt(i)); 97 } 98 } 99 100 public void writeChars(String s) throws IOException { 101 int len = s.length(); 102 byte [] b = new byte[len * 2]; 103 int index = 0; 104 for(int i = 0; i < len; i++) { 105 int v = s.charAt(i); 106 b[index++] = (byte)((v >>> 0) & 0xFF); 107 b[index++] = (byte)((v >>> 8) & 0xFF); 108 } 109 write(b); 110 } 111 112 public void writeUTF(String str) throws IOException { 113 ByteArrayOutputStream out = new ByteArrayOutputStream (str.length()); 114 DataOutputStream dataOut = new DataOutputStream (out); 115 dataOut.writeUTF(str); 116 dataOut.flush(); 117 dataOut.close(); 118 byte[] b = out.toByteArray(); 119 write(b); 120 } 121 } 122 123 124 | Popular Tags |