Method from java.io.DataOutputStream Detail: |
public void flush() throws IOException {
out.flush();
}
|
public final int size() {
return written;
}
Returns the current value of the counter written ,
the number of bytes written to this data output stream so far.
If the counter overflows, it will be wrapped to Integer.MAX_VALUE. |
public synchronized void write(int b) throws IOException {
out.write(b);
incCount(1);
}
|
public synchronized void write(byte[] b,
int off,
int len) throws IOException {
out.write(b, off, len);
incCount(len);
}
Writes len bytes from the specified byte array
starting at offset off to the underlying output stream.
If no exception is thrown, the counter written is
incremented by len . |
public final void writeBoolean(boolean v) throws IOException {
out.write(v ? 1 : 0);
incCount(1);
}
Writes a boolean to the underlying output stream as
a 1-byte value. The value true is written out as the
value (byte)1 ; the value false is
written out as the value (byte)0 . If no exception is
thrown, the counter written is incremented by
1 . |
public final void writeByte(int v) throws IOException {
out.write(v);
incCount(1);
}
Writes out a byte to the underlying output stream as
a 1-byte value. If no exception is thrown, the counter
written is incremented by 1 . |
public final void writeBytes(String s) throws IOException {
int len = s.length();
for (int i = 0 ; i < len ; i++) {
out.write((byte)s.charAt(i));
}
incCount(len);
}
Writes out the string to the underlying output stream as a
sequence of bytes. Each character in the string is written out, in
sequence, by discarding its high eight bits. If no exception is
thrown, the counter written is incremented by the
length of s . |
public final void writeChar(int v) throws IOException {
out.write((v > > > 8) & 0xFF);
out.write((v > > > 0) & 0xFF);
incCount(2);
}
Writes a char to the underlying output stream as a
2-byte value, high byte first. If no exception is thrown, the
counter written is incremented by 2 . |
public final void writeChars(String s) throws IOException {
int len = s.length();
for (int i = 0 ; i < len ; i++) {
int v = s.charAt(i);
out.write((v > > > 8) & 0xFF);
out.write((v > > > 0) & 0xFF);
}
incCount(len * 2);
}
Writes a string to the underlying output stream as a sequence of
characters. Each character is written to the data output stream as
if by the writeChar method. If no exception is
thrown, the counter written is incremented by twice
the length of s . |
public final void writeDouble(double v) throws IOException {
writeLong(Double.doubleToLongBits(v));
}
Converts the double argument to a long using the
doubleToLongBits method in class Double ,
and then writes that long value to the underlying
output stream as an 8-byte quantity, high byte first. If no
exception is thrown, the counter written is
incremented by 8 . |
public final void writeFloat(float v) throws IOException {
writeInt(Float.floatToIntBits(v));
}
Converts the float argument to an int using the
floatToIntBits method in class Float ,
and then writes that int value to the underlying
output stream as a 4-byte quantity, high byte first. If no
exception is thrown, the counter written is
incremented by 4 . |
public final void writeInt(int v) throws IOException {
out.write((v > > > 24) & 0xFF);
out.write((v > > > 16) & 0xFF);
out.write((v > > > 8) & 0xFF);
out.write((v > > > 0) & 0xFF);
incCount(4);
}
Writes an int to the underlying output stream as four
bytes, high byte first. If no exception is thrown, the counter
written is incremented by 4 . |
public final void writeLong(long v) throws IOException {
writeBuffer[0] = (byte)(v > > > 56);
writeBuffer[1] = (byte)(v > > > 48);
writeBuffer[2] = (byte)(v > > > 40);
writeBuffer[3] = (byte)(v > > > 32);
writeBuffer[4] = (byte)(v > > > 24);
writeBuffer[5] = (byte)(v > > > 16);
writeBuffer[6] = (byte)(v > > > 8);
writeBuffer[7] = (byte)(v > > > 0);
out.write(writeBuffer, 0, 8);
incCount(8);
}
Writes a long to the underlying output stream as eight
bytes, high byte first. In no exception is thrown, the counter
written is incremented by 8 . |
public final void writeShort(int v) throws IOException {
out.write((v > > > 8) & 0xFF);
out.write((v > > > 0) & 0xFF);
incCount(2);
}
Writes a short to the underlying output stream as two
bytes, high byte first. If no exception is thrown, the counter
written is incremented by 2 . |
public final void writeUTF(String str) throws IOException {
writeUTF(str, this);
}
Writes a string to the underlying output stream using
modified UTF-8
encoding in a machine-independent manner.
First, two bytes are written to the output stream as if by the
writeShort method giving the number of bytes to
follow. This value is the number of bytes actually written out,
not the length of the string. Following the length, each character
of the string is output, in sequence, using the modified UTF-8 encoding
for the character. If no exception is thrown, the counter
written is incremented by the total number of
bytes written to the output stream. This will be at least two
plus the length of str , and at most two plus
thrice the length of str . |
static int writeUTF(String str,
DataOutput out) throws IOException {
int strlen = str.length();
int utflen = 0;
int c, count = 0;
/* use charAt instead of copying String to char array */
for (int i = 0; i < strlen; i++) {
c = str.charAt(i);
if ((c >= 0x0001) && (c < = 0x007F)) {
utflen++;
} else if (c > 0x07FF) {
utflen += 3;
} else {
utflen += 2;
}
}
if (utflen > 65535)
throw new UTFDataFormatException(
"encoded string too long: " + utflen + " bytes");
byte[] bytearr = null;
if (out instanceof DataOutputStream) {
DataOutputStream dos = (DataOutputStream)out;
if(dos.bytearr == null || (dos.bytearr.length < (utflen+2)))
dos.bytearr = new byte[(utflen*2) + 2];
bytearr = dos.bytearr;
} else {
bytearr = new byte[utflen+2];
}
bytearr[count++] = (byte) ((utflen > > > 8) & 0xFF);
bytearr[count++] = (byte) ((utflen > > > 0) & 0xFF);
int i=0;
for (i=0; i< strlen; i++) {
c = str.charAt(i);
if (!((c >= 0x0001) && (c < = 0x007F))) break;
bytearr[count++] = (byte) c;
}
for (;i < strlen; i++){
c = str.charAt(i);
if ((c >= 0x0001) && (c < = 0x007F)) {
bytearr[count++] = (byte) c;
} else if (c > 0x07FF) {
bytearr[count++] = (byte) (0xE0 | ((c > > 12) & 0x0F));
bytearr[count++] = (byte) (0x80 | ((c > > 6) & 0x3F));
bytearr[count++] = (byte) (0x80 | ((c > > 0) & 0x3F));
} else {
bytearr[count++] = (byte) (0xC0 | ((c > > 6) & 0x1F));
bytearr[count++] = (byte) (0x80 | ((c > > 0) & 0x3F));
}
}
out.write(bytearr, 0, utflen+2);
return utflen + 2;
}
Writes a string to the specified DataOutput using
modified UTF-8
encoding in a machine-independent manner.
First, two bytes are written to out as if by the writeShort
method giving the number of bytes to follow. This value is the number of
bytes actually written out, not the length of the string. Following the
length, each character of the string is output, in sequence, using the
modified UTF-8 encoding for the character. If no exception is thrown, the
counter written is incremented by the total number of
bytes written to the output stream. This will be at least two
plus the length of str , and at most two plus
thrice the length of str . |