📌  相关文章
📜  Java.io.DataInputStream类(1)

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

Java.io.DataInputStream 类介绍

java.io.DataInputStream 类用于从输入流中读取基本数据类型和字符串。它继承自 java.io.FilterInputStream 类,实现了 DataInput 接口。

特点
  • DataInputStream 提供了一组方法来读取不同类型的数据,包括布尔值、字节、字符、短整型、整型、长整型、浮点型、双精度浮点型和字符串等。
  • 它可以从任何实现 InputStream 接口的类中读取数据,如文件、网络连接等。
  • 当读取时,DataInputStream 使用与其对应的 DataOutputStream 类相同的格式来解码数据。
构造方法
public DataInputStream(InputStream in)
  • 参数 in:要从中读取数据的输入流。
常用方法

DataInputStream 提供了许多方法用于读取不同类型的数据。以下是其中的一些常用方法:

  • int readInt() throws IOException:从输入流中读取一个有符号的 4 字节整数,并将其返回。
  • short readShort() throws IOException:从输入流中读取一个有符号的 2 字节短整数,并将其返回。
  • long readLong() throws IOException:从输入流中读取一个有符号的 8 字节长整数,并将其返回。
  • float readFloat() throws IOException:从输入流中读取一个 4 字节浮点数,并将其返回。
  • double readDouble() throws IOException:从输入流中读取一个 8 字节双精度浮点数,并将其返回。
  • String readUTF() throws IOException:从输入流中读取一个字符串,并将其返回。

示例代码:

import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;

public class DataInputStreamExample {
    public static void main(String[] args) {
        try (DataInputStream dis = new DataInputStream(new FileInputStream("data.bin"))) {
            int intValue = dis.readInt();
            short shortValue = dis.readShort();
            long longValue = dis.readLong();
            float floatValue = dis.readFloat();
            double doubleValue = dis.readDouble();
            String stringValue = dis.readUTF();

            System.out.println("int: " + intValue);
            System.out.println("short: " + shortValue);
            System.out.println("long: " + longValue);
            System.out.println("float: " + floatValue);
            System.out.println("double: " + doubleValue);
            System.out.println("string: " + stringValue);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在以上示例中,我们创建了一个 DataInputStream 对象来读取名为 "data.bin" 的文件中的数据。然后使用各种方法读取不同类型的数据,并将其打印输出。

注意事项
  • 使用 DataInputStream 读取数据时,需要与写入数据时使用相同格式的 DataOutputStream 配合使用,否则可能会出现数据格式不匹配的问题。
  • 当读取字符串时,字符串必须是使用 DataOutputStreamwriteUTF(String str) 方法写入的,否则会抛出 UTFDataFormatException 异常。

以上就是对 java.io.DataInputStream 类的介绍,它提供了便捷的方法来从输入流中读取不同类型的数据。