java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
java.io.DataOutputStream
- 所有已实现的接口:
-
Closeable
,DataOutput
,Flushable
,AutoCloseable
数据输出流允许应用程序以可移植的方式将原始Java数据类型写入输出流。然后应用程序可以使用数据输入流将数据读取回来。
DataOutputStream不适合多个并发线程使用。如果要让DataOutputStream被多个线程使用,则应通过适当的同步来控制对数据输出流的访问。
- 自:
- 1.0
- 参见:
-
Field Summary
Fields declared in class java.io.FilterOutputStream
out
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
flush()
刷新此数据输出流。final int
size()
返回计数器written
的当前值,到目前为止已写入此数据输出流的字节数。void
write
(byte[] b, int off, int len) 从指定的字节数组中写入len
字节,从偏移量off
开始,到底层输出流。void
write
(int b) 将指定的字节(参数b
的低8位)写入底层输出流。final void
writeBoolean
(boolean v) 将一个boolean
作为1字节值写入底层输出流。final void
writeByte
(int v) 将一个byte
作为1字节值写入底层输出流。final void
writeBytes
(String s) 将字符串作为字节序列写入底层输出流。final void
writeChar
(int v) 将一个char
作为2字节值(高字节在前)写入底层输出流。final void
writeChars
(String s) 将字符串作为字符序列写入底层输出流。final void
writeDouble
(double v) 使用Double
类中的doubleToLongBits
方法将double参数转换为long
,然后将该long
值作为8字节数量(高字节在前)写入底层输出流。final void
writeFloat
(float v) 使用Float
类中的floatToIntBits
方法将float参数转换为int
,然后将该int
值作为4字节数量(高字节在前)写入底层输出流。final void
writeInt
(int v) 将一个int
作为四字节(高字节在前)写入底层输出流。final void
writeLong
(long v) 将一个long
作为八字节(高字节在前)写入底层输出流。final void
writeShort
(int v) 将一个short
作为两字节(高字节在前)写入底层输出流。final void
使用机器无关的方式,使用修改后的UTF-8编码将字符串写入底层输出流。Methods declared in class java.io.FilterOutputStream
close, write
Methods declared in class java.io.OutputStream
nullOutputStream
Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods declared in interface java.io.DataOutput
write
-
Field Details
-
written
protected int written到目前为止写入数据输出流的字节数。如果此计数器溢出,它将被包装为Integer.MAX_VALUE。
-
-
Constructor Details
-
DataOutputStream
创建一个新的数据输出流,将数据写入指定的底层输出流。计数器written
被设置为零。- 参数:
-
out
- 要保存以供以后使用的底层输出流。 - 参见:
-
-
Method Details
-
write
将指定的字节(参数b
的低8位)写入底层输出流。如果没有抛出异常,则计数器written
将增加1
。实现
OutputStream
的write
方法。- 指定者:
-
write
在接口DataOutput
中 - 覆盖:
-
write
在类FilterOutputStream
中 - 参数:
-
b
- 要写入的byte
。 - 抛出:
-
IOException
- 如果发生I/O错误。 - 参见:
-
write
从指定的字节数组中写入len
字节,从偏移量off
开始,到底层输出流。如果没有抛出异常,则计数器written
将增加len
。- 指定者:
-
write
在接口DataOutput
中 - 覆盖:
-
write
在类FilterOutputStream
中 - 参数:
-
b
- 数据。 -
off
- 数据中的起始偏移量。 -
len
- 要写入的字节数。 - 抛出:
-
IOException
- 如果发生I/O错误。 -
IndexOutOfBoundsException
- 如果off
为负,len
为负,或len
大于b.length - off
- 参见:
-
flush
刷新此数据输出流。这将强制将任何缓冲的输出字节写入流中。DataOutputStream
的flush
方法调用其底层输出流的flush
方法。- 指定者:
-
flush
在接口Flushable
中 - 覆盖:
-
flush
在类FilterOutputStream
中 - 抛出:
-
IOException
- 如果发生I/O错误。 - 参见:
-
writeBoolean
将一个boolean
作为1字节值写入底层输出流。值true
被写入为值(byte)1
;值false
被写入为值(byte)0
。如果没有抛出异常,则计数器written
将增加1
。- 指定者:
-
writeBoolean
在接口DataOutput
中 - 参数:
-
v
- 要写入的boolean
值。 - 抛出:
-
IOException
- 如果发生I/O错误。 - 参见:
-
writeByte
将一个byte
作为1字节值写入底层输出流。如果没有抛出异常,则计数器written
将增加1
。- 指定者:
-
writeByte
在接口DataOutput
中 - 参数:
-
v
- 要写入的byte
值。 - 抛出:
-
IOException
- 如果发生I/O错误。 - 参见:
-
writeShort
将一个short
作为两字节(高字节在前)写入底层输出流。如果没有抛出异常,则计数器written
将增加2
。- 指定者:
-
writeShort
在接口DataOutput
中 - 参数:
-
v
- 要写入的short
。 - 抛出:
-
IOException
- 如果发生I/O错误。 - 参见:
-
writeChar
将一个char
作为2字节值(高字节在前)写入底层输出流。如果没有抛出异常,则计数器written
将增加2
。- 指定者:
-
writeChar
在接口DataOutput
中 - 参数:
-
v
- 要写入的char
值。 - 抛出:
-
IOException
- 如果发生I/O错误。 - 参见:
-
writeInt
将一个int
作为四字节(高字节在前)写入底层输出流。如果没有抛出异常,则计数器written
将增加4
。- 指定由:
-
writeInt
在接口DataOutput
- 参数:
-
v
- 要写入的int
值。 - 抛出:
-
IOException
- 如果发生I/O错误。 - 参见:
-
writeLong
将long
作为八个字节(高字节优先)写入底层输出流。如果没有抛出异常,则计数器written
将增加8
。- 指定由:
-
writeLong
在接口DataOutput
- 参数:
-
v
- 要写入的long
值。 - 抛出:
-
IOException
- 如果发生I/O错误。 - 参见:
-
writeFloat
将浮点参数使用Float
类中的floatToIntBits
方法转换为int
,然后将该int
值作为4字节数量(高字节优先)写入底层输出流。如果没有抛出异常,则计数器written
将增加4
。- 指定由:
-
writeFloat
在接口DataOutput
- 参数:
-
v
- 要写入的float
值。 - 抛出:
-
IOException
- 如果发生I/O错误。 - 参见:
-
writeDouble
将双精度参数使用Double
类中的doubleToLongBits
方法转换为long
,然后将该long
值作为8字节数量(高字节优先)写入底层输出流。如果没有抛出异常,则计数器written
将增加8
。- 指定由:
-
writeDouble
在接口DataOutput
- 参数:
-
v
- 要写入的double
值。 - 抛出:
-
IOException
- 如果发生I/O错误。 - 参见:
-
writeBytes
将字符串作为字节序列写入底层输出流。字符串中的每个字符按顺序写入,丢弃其高8位。如果没有抛出异常,则计数器written
将增加s
的长度。- 指定由:
-
writeBytes
在接口DataOutput
- 参数:
-
s
- 要写入的字节字符串。 - 抛出:
-
IOException
- 如果发生I/O错误。 - 参见:
-
writeChars
将字符串作为字符序列写入底层输出流。每个字符都将像writeChar
方法一样写入数据输出流。如果没有抛出异常,则计数器written
将增加s
的长度的两倍。- 指定由:
-
writeChars
在接口DataOutput
- 参数:
-
s
- 要写入的String
值。 - 抛出:
-
IOException
- 如果发生I/O错误。 - 参见:
-
writeUTF
使用机器无关的方式,使用修改的UTF-8编码将字符串写入底层输出流。首先,将两个字节写入输出流,就像通过
writeShort
方法给出要跟随的字节数一样。这个值是实际写出的字节数,而不是字符串的长度。在长度之后,按顺序输出字符串的每个字符,使用修改的UTF-8编码进行编码。如果没有抛出异常,则计数器written
将增加写入输出流的总字节数。这将至少是两加上str
的长度,并且最多是两加上str
的长度的三倍。- 指定由:
-
writeUTF
在接口DataOutput
- 参数:
-
str
- 要写入的字符串。 - 抛出:
-
UTFDataFormatException
- 如果str
的修改的UTF-8编码超过65535字节的长度 -
IOException
- 如果发生其他I/O错误。 - 参见:
-
size
public final int size()返回计数器written
的当前值,到目前为止写入此数据输出流的字节数。如果计数器溢出,它将被包装为Integer.MAX_VALUE。- 返回:
-
written
字段的值。 - 参见:
-