DataInputStream转到InputStream
时间: 2023-10-25 08:11:16 浏览: 43
DataInputStream 是 InputStream 的子类,因此可以通过向上转型将 DataInputStream 转换为 InputStream:
```
InputStream inputStream = dataInputStream;
```
这样,你就可以使用 inputStream 对象来读取数据,而不用关心它是不是 DataInputStream 类型的。
相关问题
把InputStream或者OutputStream封装为DataInputStream和DataOutputStream。
DataInputStream和DataOutputStream是Java I/O库中的两个类,它们提供了对基本数据类型的高级操作。DataInputStream和DataOutputStream都是装饰器模式的应用,可以将底层的InputStream和OutputStream封装成支持读写Java基本数据类型的流。
下面是一个示例代码,演示如何使用DataInputStream和DataOutputStream:
```java
import java.io.*;
public class DataStreamExample {
public static void main(String[] args) throws IOException {
// 创建一个文件并写入基本数据类型
FileOutputStream fos = new FileOutputStream("data.bin");
DataOutputStream dos = new DataOutputStream(fos);
dos.writeInt(12345);
dos.writeDouble(3.1415926);
dos.writeBoolean(true);
dos.writeUTF("Hello, World!");
dos.close();
// 从文件中读取基本数据类型
FileInputStream fis = new FileInputStream("data.bin");
DataInputStream dis = new DataInputStream(fis);
int a = dis.readInt();
double b = dis.readDouble();
boolean c = dis.readBoolean();
String d = dis.readUTF();
dis.close();
// 输出读取到的数据
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
}
}
```
在这个示例中,我们创建了一个名为"data.bin"的文件,并使用DataOutputStream写入了一个整数、一个双精度浮点数、一个布尔值和一个字符串。然后我们使用DataInputStream从文件中读取这些基本数据类型,并将它们输出到控制台上。
需要注意的是,DataInputStream和DataOutputStream的使用需要按照顺序读写基本数据类型,并且读写时需要使用相应的读写方法,例如readInt()、readDouble()、readBoolean()和readUTF()等。如果读写的顺序或读写方法不匹配,将会导致数据读取出错。
DataInputStream
DataInputStream 是 InputStream 的子类,它提供了读取基本数据类型(如 int、double、boolean 等)的方法。它还提供了一些其他实用的方法,如 readFully() 用于读取指定长度的字节数组,skipBytes() 用于跳过指定字节数等。当从网络上读取基本数据类型时,由于网络字节顺序的不同,可能需要使用 DataInputStream 来确保正确地读取数据。在读取基本数据类型时,它还提供了相应的方法来处理 end-of-file 和输入错误的情况。需要注意的是,DataInputStream 只能读取由 DataOutputStream 写入的数据。