📅  最后修改于: 2023-12-03 14:42:14.590000             🧑  作者: Mango
Java中的DataInputStream是用来读取二进制数据的。它继承自FilterInputStream类,该类中提供了大量的读取数据的方法。DataInputStream中也包含了很多方便的读取二进制数据的方法,如读取整数、浮点数、字符等。
使用DataInputStream需要先创建一个InputStream对象,然后将其传递给DataInputStream的构造函数。例如:
InputStream inputStream = new FileInputStream("test.bin");
DataInputStream dataInputStream = new DataInputStream(inputStream);
现在我们可以使用DataInputStream的方法来读取数据了。例如读取一个整数:
int num = dataInputStream.readInt();
如果想要读取一个浮点数,可以调用readFloat()方法:
float floatValue = dataInputStream.readFloat();
读取字符串可以调用readUTF()方法:
String str = dataInputStream.readUTF();
在使用DataInputStream的read方法时,输入流中的数据必须与写入时的数据类型一致,否则会抛出EOFException异常。此外,在读取字符串时,必须使用DataOutputStream的writeUTF()方法写入字符串才能正确读取。否则也会抛出异常。
下面是一个完整的示例代码,用来读取一个二进制文件中的整数和字符串:
import java.io.*;
public class DataInputStreamExample {
public static void main(String[] args) {
try {
InputStream inputStream = new FileInputStream("test.bin");
DataInputStream dataInputStream = new DataInputStream(inputStream);
int num = dataInputStream.readInt();
String str = dataInputStream.readUTF();
System.out.println("读取到的整数为:" + num);
System.out.println("读取到的字符串为:" + str);
dataInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
DataInputStream提供了读取二进制数据的方便方法,例如读取整数、浮点数、字符等。但需要注意的是,在读取时必须与写入时的数据类型一致,否则会抛出异常。