DataOutputStream
java.lang.Object
|—java.io.OutputStream
|—|—java.io.FilterOutputStream
|—|—|—java.io.DataOutputStream
public class DataOutputStream
extends FilterOutputStream
implements DataOutput
数据输出流允许应用程序以可移植的方式将原始 Java 数据类型写入输出流。 然后,应用程序可以使用数据输入流来读回数据。
Since:
JDK1.0
字段摘要
修饰符和类型 | 字段 | 描述 |
---|---|---|
protected int | written | 到目前为止写入数据输出流的字节数。 |
从类 java.io.FilterOutputStream 继承的字段 |
---|
out |
构造函数摘要
构造函数 | 描述 |
---|---|
DataOutputStream(OutputStream out) | 创建新的数据输出流以将数据写入指定的基础输出流。 |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
void | flush() | 刷新此数据输出流。 |
int | size() | 返回写入的计数器的当前值,即到目前为止写入此数据输出流的字节数。 |
void | write(byte[] b, int off, int len) | 将指定字节数组中的 len 个字节从 offset off 处开始写入底层输出流。 |
void | write(int b) | 将指定字节(参数 b 的低八位)写入底层输出流。 |
void | writeBoolean(boolean v) | 将布尔值作为 1 字节值写入基础输出流。 |
void | writeByte(int v) | 将一个字节作为 1 字节值写入底层输出流。 |
void | writeBytes(String s) | 将字符串作为字节序列写入底层输出流。 |
void | writeChar(int v) | 将 char 作为 2 字节值写入底层输出流,先是高字节。 |
void | writeChars(String s) | 将字符串作为字符序列写入基础输出流。 |
void | writeDouble(double v) | 使用 Double 类中的 doubleToLongBits 方法将 double 参数转换为 long,然后将该 long 值作为 8 字节数量写入底层输出流,先是高字节。 |
void | writeFloat(float v) | 使用 Float 类中的 floatToIntBits 方法将 float 参数转换为 int,然后将该 int 值作为 4 字节数量写入底层输出流,先是高字节。 |
void | writeInt(int v) | 将一个 int 作为四个字节写入底层输出流,先是高字节。 |
void | writeLong(long v) | 将 long 作为 8 个字节写入底层输出流,先是高字节。 |
void | writeShort(int v) | 以两个字节的形式将一个短路写入底层输出流,先是高字节。 |
void | writeUTF(String str) | 使用修改后的 UTF-8 编码以与机器无关的方式将字符串写入底层输出流。 |
从接口 java.io.DataOutput 继承的方法 |
---|
write |
从类 java.io.FilterOutputStream 继承的方法 |
---|
close, write |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息
written
protected int written
到目前为止写入数据输出流的字节数。 如果此计数器溢出,它将被包装到 Integer.MAX_VALUE。
构造函数详细信息
DataOutputStream
public DataOutputStream(OutputStream out)
创建新的数据输出流以将数据写入指定的基础输出流。 写入的计数器设置为零。
参数:
参数名称 | 参数描述 |
---|---|
out | 底层输出流,保存以备后用。 |
方法详情
write
public void write(int b) throws IOException
将指定字节(参数 b 的低八位)写入底层输出流。 如果没有抛出异常,则写入的计数器加 1。
实现OutputStream的write方法。
指定者:
写入接口DataOutput
覆盖:
写在类 FilterOutputStream
参数:
参数名称 | 参数描述 |
---|---|
b | 要写入的字节。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
write
public void write(byte[] b, int off, int len) throws IOException
将指定字节数组中的 len 个字节从 offset off 处开始写入底层输出流。 如果没有抛出异常,则写入的计数器增加 len。
指定者:
写入接口DataOutput
覆盖:
写在类 FilterOutputStream
参数:
参数名称 | 参数描述 |
---|---|
b | 数据。 |
off | 数据中的起始偏移量。 |
len | 要写入的字节数。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
flush
public void flush() throws IOException
刷新此数据输出流。 这会强制将任何缓冲的输出字节写出到流中。
DataOutputStream 的 flush 方法调用其底层输出流的 flush 方法。
指定者:
在接口 Flushable 中刷新
覆盖:
类 FilterOutputStream 中的刷新
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeBoolean
public final void writeBoolean(boolean v) throws IOException
将布尔值作为 1 字节值写入基础输出流。 值 true 被写为值(字节)1; 值 false 被写为值(字节)0。 如果没有抛出异常,则写入的计数器加 1。
指定者:
接口 DataOutput 中的 writeBoolean
参数:
参数名称 | 参数描述 |
---|---|
v | 要写入的布尔值。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeByte
public final void writeByte(int v) throws IOException
将一个字节作为 1 字节值写入底层输出流。 如果没有抛出异常,则写入的计数器加 1。
指定者:
接口 DataOutput 中的 writeByte
参数:
参数名称 | 参数描述 |
---|---|
v | 要写入的字节值。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeShort
public final void writeShort(int v) throws IOException
以两个字节的形式将一个短路写入底层输出流,先是高字节。 如果没有抛出异常,则写入的计数器加 2。
指定者:
接口 DataOutput 中的 writeShort
参数:
参数名称 | 参数描述 |
---|---|
v | 一个要写的short。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeChar
public final void writeChar(int v) throws IOException
将 char 作为 2 字节值写入底层输出流,先是高字节。 如果没有抛出异常,则写入的计数器加 2。
指定者:
接口 DataOutput 中的 writeChar
参数:
参数名称 | 参数描述 |
---|---|
v | 要写入的 char 值。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeInt
public final void writeInt(int v) throws IOException
将一个 int 作为四个字节写入底层输出流,先是高字节。 如果没有抛出异常,则写入的计数器增加 4。
指定者:
接口 DataOutput 中的 writeInt
参数:
参数名称 | 参数描述 |
---|---|
v | 要写入的 int。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeLong
public final void writeLong(long v) throws IOException
将 long 作为 8 个字节写入底层输出流,先是高字节。 在不抛出异常的情况下,写入的计数器增加 8。
指定者:
接口 DataOutput 中的 writeLong
参数:
参数名称 | 参数描述 |
---|---|
v | 要写一个long。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeFloat
public final void writeFloat(float v) throws IOException
使用 Float 类中的 floatToIntBits 方法将 float 参数转换为 int,然后将该 int 值作为 4 字节数量写入底层输出流,先是高字节。 如果没有抛出异常,则写入的计数器增加 4。
指定者:
接口 DataOutput 中的 writeFloat
参数:
参数名称 | 参数描述 |
---|---|
v | 要写入的浮点值。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeDouble
public final void writeDouble(double v) throws IOException
使用 Double 类中的 doubleToLongBits 方法将 double 参数转换为 long,然后将该 long 值作为 8 字节数量写入底层输出流,先是高字节。 如果没有抛出异常,则写入的计数器加 8。
指定者:
接口 DataOutput 中的 writeDouble
参数:
参数名称 | 参数描述 |
---|---|
v | 要写入的 double 值。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeBytes
public final void writeBytes(String s) throws IOException
将字符串作为字节序列写入底层输出流。 字符串中的每个字符通过丢弃其高八位按顺序写出。 如果没有抛出异常,则写入的计数器增加 s 的长度。
指定者:
接口 DataOutput 中的 writeBytes
参数:
参数名称 | 参数描述 |
---|---|
s | 要写入的字节串。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeChars
public final void writeChars(String s) throws IOException
将字符串作为字符序列写入基础输出流。 每个字符都被写入数据输出流,就像通过 writeChar 方法一样。 如果没有抛出异常,则写入的计数器增加 s 长度的两倍。
指定者:
接口 DataOutput 中的 writeChars
参数:
参数名称 | 参数描述 |
---|---|
s | 要写入的字符串值。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeUTF
public final void writeUTF(String str) throws IOException
使用修改后的 UTF-8 编码以与机器无关的方式将字符串写入底层输出流。
首先,两个字节被写入输出流,就好像通过 writeShort 方法给出了后面的字节数。 这个值是实际写出的字节数,而不是字符串的长度。 在长度之后,使用修改后的 UTF-8 字符编码按顺序输出字符串的每个字符。 如果没有抛出异常,则写入的计数器将增加写入输出流的字节总数。 这将至少是 str 长度的两倍,最多是 str 长度的两倍。
指定者:
接口 DataOutput 中的 writeUTF
参数:
参数名称 | 参数描述 |
---|---|
str | 要写入的字符串。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
size
public final int size()
返回写入的计数器的当前值,即到目前为止写入此数据输出流的字节数。 如果计数器溢出,它将被包装到 Integer.MAX_VALUE。
返回:
写入字段的值。