Methods Summary |
---|
public void | close()Closes this output stream and releases any system resources
associated with the stream.
The close method
calls its flush method, and then calls the
close method of its underlying output stream.
try {
flush();
} catch (IOException e) {
}
out.close();
|
public void | flush()Flushes this data output stream. This forces any buffered output
bytes to be written out to the stream.
The flush method of DataOutputStream
calls the flush method of its underlying output stream.
out.flush();
|
public void | write(int b)Writes the specified byte (the low eight bits of the argument
b ) to the underlying output stream.
Implements the write method of OutputStream .
out.write(b);
|
public void | write(byte[] b, int off, int len)Writes len bytes from the specified byte array
starting at offset off to the underlying output stream.
out.write(b, off, len);
|
public final void | writeBoolean(boolean v)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 .
write(v ? 1 : 0);
|
public final void | writeByte(int v)Writes out a byte to the underlying output stream as
a 1-byte value.
write(v);
|
public final void | writeChar(int v)Writes a char to the underlying output stream as a
2-byte value, high byte first.
write((v >>> 8) & 0xFF);
write((v >>> 0) & 0xFF);
|
public final void | writeChars(java.lang.String s)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.
int len = s.length();
for (int i = 0 ; i < len ; i++) {
int v = s.charAt(i);
write((v >>> 8) & 0xFF);
write((v >>> 0) & 0xFF);
}
|
public final void | writeDouble(double 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.
writeLong(Double.doubleToLongBits(v));
|
public final void | writeFloat(float 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.
writeInt(Float.floatToIntBits(v));
|
public final void | writeInt(int v)Writes an int to the underlying output stream as four
bytes, high byte first.
write((v >>> 24) & 0xFF);
write((v >>> 16) & 0xFF);
write((v >>> 8) & 0xFF);
write((v >>> 0) & 0xFF);
|
public final void | writeLong(long v)Writes a long to the underlying output stream as eight
bytes, high byte first.
write((int)(v >>> 56) & 0xFF);
write((int)(v >>> 48) & 0xFF);
write((int)(v >>> 40) & 0xFF);
write((int)(v >>> 32) & 0xFF);
write((int)(v >>> 24) & 0xFF);
write((int)(v >>> 16) & 0xFF);
write((int)(v >>> 8) & 0xFF);
write((int)(v >>> 0) & 0xFF);
|
public final void | writeShort(int v)Writes a short to the underlying output stream as two
bytes, high byte first.
write((v >>> 8) & 0xFF);
write((v >>> 0) & 0xFF);
|
public final void | writeUTF(java.lang.String str)Writes a string to the underlying output stream using 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 UTF-8 encoding
for the character.
writeUTF(str, this);
|
static final int | writeUTF(java.lang.String str, java.io.DataOutput out)Writes a string to the specified DataOutput using 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
UTF-8 encoding for the character.
int strlen = str.length();
int utflen = 0;
char[] charr = new char[strlen];
int c, count = 0;
str.getChars(0, strlen, charr, 0);
for (int i = 0; i < strlen; i++) {
c = charr[i];
if ((c >= 0x0001) && (c <= 0x007F)) {
utflen++;
} else if (c > 0x07FF) {
utflen += 3;
} else {
utflen += 2;
}
}
if (utflen > 65535) {
throw new UTFDataFormatException();
}
byte[] bytearr = new byte[utflen+2];
bytearr[count++] = (byte) ((utflen >>> 8) & 0xFF);
bytearr[count++] = (byte) ((utflen >>> 0) & 0xFF);
for (int i = 0; i < strlen; i++) {
c = charr[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);
return utflen + 2;
|