📌  相关文章
📜  Java IO-DataInputStream(1)

📅  最后修改于: 2023-12-03 14:42:14.590000             🧑  作者: Mango

Java IO-DataInputStream

Java中的DataInputStream是用来读取二进制数据的。它继承自FilterInputStream类,该类中提供了大量的读取数据的方法。DataInputStream中也包含了很多方便的读取二进制数据的方法,如读取整数、浮点数、字符等。

使用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提供了读取二进制数据的方便方法,例如读取整数、浮点数、字符等。但需要注意的是,在读取时必须与写入时的数据类型一致,否则会抛出异常。