数据输出流允许应用程序以可移植的方式将原始 Java 数据类型写入输出流。然后,应用程序可以使用数据输入流读回数据。在继续讨论此类的方法之前,让我们先讨论一下此类的构造函数。
构造函数:DataOutputStream(OutputStream 输出)
创建新的数据输出流以将数据写入指定的底层输出流。现在让我们在实现此类之前先讨论该类的重要方法。
方法一:无效flush()
刷新此数据输出流。
句法:
public void flush() throws IOException
Note: It do overrides the flush() method in class FilterOutputStream
抛出异常:IO异常
方法二:size()
返回写入的计数器的当前值,到目前为止写入此数据输出流的字节数
用法:
public final int size()
返回类型:写入字段的整数值
方法三:写()
将指定字节数组中从偏移量 off 开始的 len 个字节写入底层输出流。
用法:
void write (byte[] b, int off, int len)
参数:
- 字节数组
- int 关闭
- 字节数组的长度
返回类型:空白
方法四:
用法:
public void write(byte[] b, int off,int len)
Note: It overrides write() method in FilterOutputStream class.
参数:
- 数据
- 数据中的起始偏移量
- 要写入的字节数
异常:IO异常
方法5:void write(int b):
将指定字节(参数 b 的低八位)写入基础输出流。
用法:
public void write(int b) throws IOException
返回类型:空白
参数:要写入的字节
方法六:writeBoolean()
将布尔值作为 1 字节值写入底层输出流。
用法:
void writeBoolean (boolean v)
返回类型:空白
参数:布尔值
方法七:writeBoolean()
用法:
public final void writeBoolean(boolean v) throws IOException
参数:要写入的布尔值。
抛出:IOException
方法8:writeByte()
将一个字节作为 1 字节值写入底层输出流。
用法:
public final void writeByte(int v) throws IOException
参数:要写入的字节值
Exception Thrown:IO异常
方法九:writeChar()
将 char 作为 2 字节值写入底层输出流,先高字节。
用法:
public final void writeChar(int v) throws IOException
参数:要写入的字符值。
Exception: IO异常
方法10:void writeDouble(double v)
使用 Double 类中的 doubleToLongBits 方法将 double 参数转换为 long,然后将该 long 值作为 8 字节数量(高字节在前)写入基础输出流。
用法:
public final void writeDouble(double v) throws IOException
参数:要写入的双精度值
Exception thrown:IO异常
方法十一: writeFloat (浮点 v)
使用 Float 类中的 floatToIntBits 方法将 float 参数转换为 int,然后将该 int 值以 4 字节数量(最高有效位在前)的形式写入基础输出流。
用法:
public final void writeFloat(float v) throws IOException
返回类型:空白
参数:要写入的浮点值。
Exception thrown:IO异常
方法十二:writeInt()
将 int 作为四个字节写入底层输出流,先是高字节。
用法:
public final void writeInt(int v) throws IOException
Parameters: 要写入的int。
返回类型:空白
抛出异常:将 int 作为四个字节写入底层输出流,先是高字节。
方法13:writeLong()
将 long 作为八个字节写入底层输出流,先是高字节。
用法:
public final void writeLong(long v) throws IOException
参数:很长要写。
抛出:IOException
方法14:writeShort():
将一个短值作为两个字节写入底层输出流,先是高字节。
返回类型:空白
参数:待写的短篇
Syntax :
public final void writeShort(int v) throws IOException
方法15:writeUTF(字符串str)
使用修改后的 UTF-8 编码以 machine-independent 方式将字符串写入基础输出流。
参数:要写入的字符串
返回类型:空白
抛出异常:IO异常
Note: There are certain important points to be remembered as listed:
- DataOutputStream and DataInputStream are often used together.
- When a DataOutputStream is closed (by calling close( )), the underlying stream specified by out is also closed automatically.
- There is no longer any explicit close() method call. The try-with-resources construct takes care of that.
例子:
Java
// Java Program to Demonstrate DataOutputStream
// Importing required classes
import java.io.*;
// Main class
// DataOutputStreamDemo
class GFG {
// Main driver method
public static void main(String args[]) throws IOException {
// Try block to check for exceptions
// Writing the data using DataOutputStream
try ( DataOutputStream dout =
new DataOutputStream(new FileOutputStream("file.dat")) ) {
dout.writeDouble(1.1);
dout.writeInt(55);
dout.writeBoolean(true);
dout.writeChar('4');
}
catch (FileNotFoundException ex) {
System.out.println("Cannot Open the Output File");
return;
}
// Reading the data back using DataInputStream
try ( DataInputStream din =
new DataInputStream(new FileInputStream("file.dat")) ) {
double a = din.readDouble();
int b = din.readInt();
boolean c = din.readBoolean();
char d = din.readChar();
System.out.println("Values: " + a + " " + b + " " + c + " " + d);
}
// Catch block to handle FileNotFoundException
catch (FileNotFoundException e) {
System.out.println("Cannot Open the Input File");
return;
}
}
}
输出:
Values: 1.1 55 true 4
Note: The above program uses try-with-resources so do it require JDK 7 or later.
相关用法
- Java Java.io.DataOutputStream.flush()用法及代码示例
- Java Java.io.DataOutputStream.size()用法及代码示例
- Java Java.io.DataOutputStream.write()用法及代码示例
- Java Java.io.DataOutputStream.writeBoolean()用法及代码示例
- Java Java.io.DataOutputStream.writeByte()用法及代码示例
- Java Java.io.DataOutputStream.writeBytes()用法及代码示例
- Java Java.io.DataOutputStream.writeChar()用法及代码示例
- Java Java.io.DataOutputStream.writeChars()用法及代码示例
- Java Java.io.DataOutputStream.writeDouble()用法及代码示例
- Java Java.io.DataOutputStream.writeFloat()用法及代码示例
- Java Java.io.DataOutputStream.writeInt()用法及代码示例
- Java Java.io.DataOutputStream.writeLong()用法及代码示例
- Java Java.io.DataOutputStream.writeShort()用法及代码示例
- Java Java.io.DataOutputStream.writeUTF()用法及代码示例
- Java Java.io.DataInputStream.read()用法及代码示例
- Java Java.io.DataInputStream.readBoolean()用法及代码示例
- Java Java.io.DataInputStream.readByte()用法及代码示例
- Java Java.io.DataInputStream.readChar()用法及代码示例
- Java Java.io.DataInputStream.readDouble()用法及代码示例
- Java Java.io.DataInputStream.readFloat()用法及代码示例
- Java Java.io.DataInputStream.readFully()用法及代码示例
- Java Java.io.DataInputStream.readInt()用法及代码示例
- Java Java.io.DataInputStream.readLong()用法及代码示例
- Java Java.io.DataInputStream.readShort()用法及代码示例
- Java Java.io.DataInputStream.readUnsignedByte()用法及代码示例
注:本文由纯净天空筛选整理自佚名大神的英文原创作品 Java.io.DataOutputStream in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。