Java I/O 流如何处理二进制数据
简介
Java I/O 流提供了处理二进制数据的机制,在文件读写、网络通信和数据处理中至关重要。本文将介绍 Java 中用于处理二进制数据的流类型,包括 FileInputStream
、FileOutputStream
、DataInputStream
和 DataOutputStream
。
FileInputStream 和 FileOutputStream
这两个流用于读写二进制文件。
- FileInputStream:用于从文件读取二进制数据。
- FileOutputStream:用于将二进制数据写入文件。
代码示例:
// 从文件读取二进制数据
try (FileInputStream fis = new FileInputStream("data.bin")) {
int data;
while ((data = fis.read()) != -1) {
System.out.println(data);
}
}
// 向文件写入二进制数据
try (FileOutputStream fos = new FileOutputStream("data.bin")) {
fos.write(1);
fos.write(2);
fos.write(3);
}
DataInputStream 和 DataOutputStream
这两个流使您可以以更高级的方式读写二进制数据,允许您读写原始数据类型和字符串。
- DataInputStream:用于从输入流中读取原始数据类型。
- DataOutputStream:用于将原始数据类型写入输出流。
代码示例:
// 从输入流中读取原始数据类型
try (DataInputStream dis = new DataInputStream(new FileInputStream("data.bin"))) {
int i = dis.readInt();
double d = dis.readDouble();
}
// 向输出流中写入原始数据类型
try (DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.bin"))) {
dos.writeInt(42);
dos.writeDouble(3.14);
}
// 读取图像文件
BufferedImage image = ImageIO.read(new File("image.jpg"));
// 将图像写入二进制文件
try (FileOutputStream fos = new FileOutputStream("image.bin")) {
ImageIO.write(image, "jpg", fos);
}
Java I/O 流通过 FileInputStream
、FileOutputStream
、DataInputStream
和 DataOutputStream
提供了处理二进制数据的强大机制。这些流允许您读写原始数据类型、字符串和复杂对象,在各种应用中都非常有用。