dataoutputstream.java
来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 535 行 · 第 1/2 页
JAVA
535 行
public final void
writeByte(int b) throws IOException
{
out.write(b);
++written;
}
/*************************************************************************/
/**
* This method writes all the bytes in a <code>String</code> out to the
* stream. One byte is written for each character in the <code>String</code>.
* The high eight bits of each character are discarded.
*
* @param s The <code>String</code> to write to the stream
*
* @exception IOException If an error occurs
*/
public final void
writeBytes(String s) throws IOException
{
if (s.length() == 0)
return;
byte[] buf = new byte[s.length()];
for (int i = 0; i < s.length(); i++)
buf[i] = (byte)(s.charAt(i) & 0xFF);
out.write(buf);
written += buf.length;
}
/*************************************************************************/
/**
* This method writes a single <code>char</code> value to the stream,
* high byte first.
*
* @param c The <code>char</code> value to write, passed as an <code>int</code>.
*
* @exception IOException If an error occurs
*/
public final void
writeChar(int c) throws IOException
{
out.write(convertFromChar(c));
written += 2;
}
/*************************************************************************/
/**
* This method writes all the characters in a <code>String</code> to the
* stream. There will be two bytes for each character value. The high
* byte of the character will be written first.
*
* @param s The <code>String</code> to write to the stream.
*
* @exception IOException If an error occurs
*/
public final void
writeChars(String s) throws IOException
{
if (s.length() == 0)
return;
byte[] buf = getConvertedStringChars(s);
out.write(buf);
written += buf.length;
}
/*************************************************************************/
/**
* This method writes a Java <code>short</code> to the stream, high byte
* first. This method requires two bytes to encode the value.
*
* @param s The <code>short</code> value to write to the stream, passed as an <code>int</code>.
*
* @exception IOException If an error occurs
*/
public final void
writeShort(int s) throws IOException
{
out.write(convertFromShort(s));
written += 2;
}
/*************************************************************************/
/**
* This method writes a Java <code>int</code> to the stream, high bytes
* first. This method requires four bytes to encode the value.
*
* @param i The <code>int</code> value to write to the stream.
*
* @exception IOException If an error occurs
*/
public final void
writeInt(int i) throws IOException
{
out.write(convertFromInt(i));
written += 4;
}
/*************************************************************************/
/**
* This method writes a Java <code>long</code> to the stream, high bytes
* first. This method requires eight bytes to encode the value.
*
* @param l The <code>long</code> value to write to the stream.
*
* @exception IOException If an error occurs
*/
public final void
writeLong(long l) throws IOException
{
out.write(convertFromLong(l));
written += 8;
}
/*************************************************************************/
/**
* This method writes a Java <code>float</code> value to the stream. This
* value is written by first calling the method <code>Float.floatToIntBits</code>
* to retrieve an <code>int</code> representing the floating point number,
* then writing this <code>int</code> value to the stream exactly the same
* as the <code>writeInt()</code> method does.
*
* @param f The floating point number to write to the stream.
*
* @exception IOException If an error occurs
*
* @see writeInt
*/
public final void
writeFloat(float f) throws IOException
{
int i = Float.floatToIntBits(f);
writeInt(i);
}
/*************************************************************************/
/**
* This method writes a Java <code>double</code> value to the stream. This
* value is written by first calling the method <code>Double.doubleToLongBits</code>
* to retrieve an <code>long</code> representing the floating point number,
* then writing this <code>long</code> value to the stream exactly the same
* as the <code>writeLong()</code> method does.
*
* @param d The double precision floating point number to write to the stream.
*
* @exception IOException If an error occurs
*
* @see writeLong
*/
public final void
writeDouble(double d) throws IOException
{
long l = Double.doubleToLongBits(d);
writeLong(l);
}
/*************************************************************************/
/**
* This method writes a Java <code>String</code> to the stream in a modified
* UTF-8 format. First, two bytes are written to the stream indicating the
* number of bytes to follow. Note that this is the number of bytes in the
* encoded <code>String</code> not the <code>String</code> length. Next
* come the encoded characters. Each character in the <code>String</code>
* is encoded as either one, two or three bytes. For characters in the
* range of <code>\u0001</code> to <\u007F>, one byte is used. The character
* value goes into bits 0-7 and bit eight is 0. For characters in the range
* of <code>\u0080</code> to <code>\u007FF</code>, two bytes are used. Bits
* 6-10 of the character value are encoded bits 0-4 of the first byte, with
* the high bytes having a value of "110". Bits 0-5 of the character value
* are stored in bits 0-5 of the second byte, with the high bits set to
* "10". This type of encoding is also done for the null character
* <code>\u0000</code>. This eliminates any C style NUL character values
* in the output. All remaining characters are stored as three bytes.
* Bits 12-15 of the character value are stored in bits 0-3 of the first
* byte. The high bits of the first bytes are set to "1110". Bits 6-11
* of the character value are stored in bits 0-5 of the second byte. The
* high bits of the second byte are set to "10". And bits 0-5 of the
* character value are stored in bits 0-5 of byte three, with the high bits
* of that byte set to "10".
*
* @param s The <code>String</code> to write to the output in UTF format
*
* @exception IOException If an error occurs
*/
public synchronized final void
writeUTF(String s) throws IOException
{
byte[] buf = convertToUTF(s);
writeShort(buf.length);
out.write(buf);
written += buf.length;
}
/*************************************************************************/
/**
* This method writes the specified byte (passed as an <code>int</code>)
* to the underlying output stream.
*
* @param b The byte to write, passed as an <code>int</code>.
*
* @exception IOException If an error occurs.
*/
public void
write(int b) throws IOException
{
out.write(b);
++written;
}
/*************************************************************************/
/**
* This method writes <code>len</code> bytes from the specified byte array
* <code>buf</code> starting at position <code>offset</code> into the
* buffer to the underlying output stream.
*
* @param buf The byte array to write from.
* @param offset The index into the byte array to start writing from.
* @param len The number of bytes to write.
*
* @exception IOException If an error occurs.
*/
public void
write(byte[] buf, int offset, int len) throws IOException
{
out.write(buf, offset, len);
written += len;
}
/*************************************************************************/
/**
* This method flushes any unwritten bytes to the underlying stream.
*
* @exception IOException If an error occurs.
*/
public void
flush() throws IOException
{
out.flush();
}
} // class DataOutputStream
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?