DataInputStream类是Java.io包中的一个重要类,它用于从输入流中读取基本数据类型(如int、float、long等)和字符串。本文将详细介绍DataInputStream类的用法、特点以及在实际应用中的示例,并给出代码及运行结果。
一、DataInputStream类概述
-
类定义 DataInputStream类是一个过滤流,它继承了FilterInputStream类,并实现了DataInput接口。
-
主要功能 DataInputStream类主要用于读取基本数据类型和字符串,它提供了一系列读取方法,使得从输入流中读取数据变得简单高效。
-
构造方法 DataInputStream类提供了以下构造方法:
-
DataInputStream(InputStream in):创建一个使用指定字节输入流的新数据输入流。
二、DataInputStream类的方法 以下是DataInputStream类的一些常用方法:
读取基本数据类型
- readBoolean():读取一个布尔值
- readByte():读取一个字节
- readChar():读取一个字符
- readDouble():读取一个双精度浮点数
- readFloat():读取一个单精度浮点数
- readInt():读取一个整数
- readLong():读取一个长整数
- readShort():读取一个短整数
读取字符串
- readUTF():读取一个使用UTF-8编码的字符串
- readLine():读取一个字符串,已过时,不推荐使用
其他方法
- skipBytes(int n):跳过输入流中的n个字节
- available():返回输入流中可读取的字节数
- close():关闭输入流
三、DataInputStream类使用示例 以下是一个使用DataInputStream类读取文件中基本数据类型和字符串的示例:
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class DataInputStreamExample {
public static void main(String[] args) {
try {
// 创建文件输入流
FileInputStream fis = new FileInputStream("data.txt");
// 创建数据输入流
DataInputStream dis = new DataInputStream(fis);
// 读取基本数据类型
int age = dis.readInt();
double salary = dis.readDouble();
boolean isMarried = dis.readBoolean();
String name = dis.readUTF();
// 输出读取的数据
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("Salary: " + salary);
System.out.println("Is Married: " + isMarried);
// 关闭流
dis.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
假设文件data.txt的内容如下:
25
10000.0
true
张三
运行结果:
Name: 张三
Age: 25
Salary: 10000.0
Is Married: true
五、总结
DataInputStream类是Java中用于读取基本数据类型和字符串的过滤流,它简化了从输入流中读取数据的操作。