📅  最后修改于: 2023-12-03 14:42:20.565000             🧑  作者: Mango
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
配合使用,否则可能会出现数据格式不匹配的问题。DataOutputStream
的 writeUTF(String str)
方法写入的,否则会抛出 UTFDataFormatException
异常。以上就是对 java.io.DataInputStream
类的介绍,它提供了便捷的方法来从输入流中读取不同类型的数据。