如何使用java.io.DataInputStream,请举例
时间: 2024-09-19 21:04:38 浏览: 36
java72-java-advance.rar
`java.io.DataInputStream`是Java标准库中用于读取二进制文件的类,它允许以一种更自然的方式处理字节流,而不是直接操作`byte[]`数组。下面是一个简单的例子,说明如何使用`DataInputStream`来读取二进制文件:
```java
import java.io.*;
import java.io.DataInputStream;
public class DataInputStreamExample {
public static void main(String[] args) {
try {
// 打开一个二进制文件(假设文件名为"data.bin")
FileInputStream fis = new FileInputStream("data.bin");
// 创建DataInputStream实例,将FileInputStream传递给它
DataInputStream dis = new DataInputStream(fis);
// 读取整型数值
int num = dis.readInt(); // 读取4个字节的数据作为整数
// 读取浮点数
float floatNum = dis.readFloat();
// 读取字符串(注意字节序)
byte[] strBytes = new byte[5];
dis.readFully(strBytes);
String str = new String(strBytes, "UTF-8"); // 解码字符串
// 关闭输入流
dis.close();
fis.close();
System.out.println("Read number: " + num);
System.out.println("Read float: " + floatNum);
System.out.println("Read string: " + str);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在这个例子中,我们首先创建了`FileInputStream`来打开文件,然后创建`DataInputStream`来处理读取操作。`readInt()`和`readFloat()`分别用于读取基本数据类型,`readFull()`则可以一次性读取指定长度的数据到缓冲区。记得在完成操作后关闭`DataInputStream`和`FileInputStream`以释放资源。
阅读全文