Java DataInputStream和DataOutputStream字节流的用法(附带实例)
Java 中,DataInputStream 和 DataOutputStream 属于过滤流类,主要用于在网络中或通过文件进行基本数据类型的读写。
DataOutputStream 主要用于将基本数据类型(如 int、double、char 等)序列化为字节,然后写入输出流,DataInputStream 主要用于从输入流中读取基本数据类型。
这两个类的主要方法如表 1 和表 2 所示。
下面通过两个例子演示这两个类的具体用法。
【实例 1】通过 DataOutputStream 向文件中写入基本数据类型。创建 DataOutputStream 对象,并使用它把一个整数、一个双精度浮点数和一个字符写入“d:\output.txt”文件中。
【实例 2】通过 DataInputStream 从输入流中读取基本数据类型。创建 DataInputStream 对象,并使用它从“d:\output.txt”文件中读取整数、双精度浮点数和字符,然后将这些数据打印出来。
DataOutputStream 主要用于将基本数据类型(如 int、double、char 等)序列化为字节,然后写入输出流,DataInputStream 主要用于从输入流中读取基本数据类型。
这两个类的主要方法如表 1 和表 2 所示。
| 方法 | 方法说明 |
|---|---|
| int readInt() | 从输入流读取int类型数据 |
| byte readByte() | 从输入流读取byte类型数据 |
| char readChar() | 从输入流读取char类型数据 |
| long readLong() | 从输入流读取long类型数据 |
| double readDouble() | 从输入流读取double类型数据 |
| float readFloat() | 从输入流读取float类型数据 |
| boolean readBoolean() | 从输入流读取boolean类型数据 |
| String readUTF() | 从输入流读取若干字节,然后转换成UTF-8编码的字符串 |
| 方法 | 方法说明 |
|---|---|
| void writeInt() | 向输出流写入一个int类型的数据 |
| void writeByte() | 向输出流写入一个byte类型数据 |
| void writeChar() | 向输出流写入一个char类型数据 |
| void writeLong() | 向输出流写入一个long类型数据 |
| void writeDouble() | 向输出流写入一个double类型数据 |
| void writeFloat() | 向输出流写入一个float类型数据 |
| boolean writeBoolean() | 向输出流写入一个boolean类型数据 |
| void writeUTF() | 向输出流写入采用UTF-8字符编码的字符串 |
下面通过两个例子演示这两个类的具体用法。
【实例 1】通过 DataOutputStream 向文件中写入基本数据类型。创建 DataOutputStream 对象,并使用它把一个整数、一个双精度浮点数和一个字符写入“d:\output.txt”文件中。
import java.io.*;
public class DataOutputStreamExample {
public static void main(String[] args) {
try {
// 创建一个文件输出流对象
FileOutputStream fos = new FileOutputStream("d:\\output.txt");
// 创建一个数据输出流对象,用于将基本数据类型写入输出流
DataOutputStream dos = new DataOutputStream(fos);
// 写入数据
dos.writeInt(123);
dos.writeDouble(3.14159);
dos.writeChar('A');
// 关闭流
dos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
执行该程序,会在“d:\output.txt”文件中写入相应的数据。【实例 2】通过 DataInputStream 从输入流中读取基本数据类型。创建 DataInputStream 对象,并使用它从“d:\output.txt”文件中读取整数、双精度浮点数和字符,然后将这些数据打印出来。
import java.io.*;
public class DataInputStreamExample {
public static void main(String[] args) {
try {
// 创建一个文件输入流对象
FileInputStream fis = new FileInputStream("d:\\output.txt");
// 创建一个数据输入流对象,用于从输入流中读取基本数据类型
DataInputStream dis = new DataInputStream(fis);
// 读取数据
int i = dis.readInt();
double d = dis.readDouble();
char c = dis.readChar();
// 打印数据
System.out.println("Int: " + i);
System.out.println("Double: " + d);
System.out.println("Char: " + c);
// 关闭流
dis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
程序执行结果为:
Int: 123
Double: 3.14159
Char: A
ICP备案:
公安联网备案: