先看下继承的关系:

这两个流,也是装饰流!它们可以直接写入Java的基础数据类型。比如,我们要写入一个long类型的数据,怎么写?long类型是8个字节哦!

你看:根据这两个流的API,可以直接写入一个基础的数据类型。
这样,这两个流结合起来,就可以完成一系列的数据存取操作。
public class BufferedReaderTestClient {
public static void main(String[] args) {
try (DataOutputStream outputStream = new DataOutputStream(new FileOutputStream("Test"));
DataInputStream inputStream = new DataInputStream(new FileInputStream("Test"))) {
char data;
for (int i = 0; i < 26; i++) {
outputStream.writeChar(65 + i);//i=0时,此时A会立刻被写入"Test"文件中
data = inputStream.readChar();
System.out.println("data = " + data);
}
} catch (Exception exception) {
}
}
}
记住:当 outputStream.writeChar(65 + i) 被调用时,数据直接被写入到文件(磁盘等介质)中了。
data = A
data = B
data = C
... ...
data = X
data = Y
data = Z
这样,一边写数据,一边读数据,就把A-Z所有的大写字母都打印出来了。
DataOutputStream outputStream = new DataOutputStream(new FileOutputStream("Test"))
DataInputStream inputStream = new DataInputStream(new FileInputStream("Test"))
因为,和BufferedOutputStream流相似都是一种FilterOutputStream,所以,需要传入需要包装的InputStream或者OutputStream流对象。
好了,亲手试试吧,评论区交流!
本文介绍了Java中的DataInputStream和DataOutputStream,它们作为装饰流可以直接处理基础数据类型。通过这两个流,可以方便地进行数据存取操作,例如写入long类型数据。当使用writeChar方法时,数据会被直接写入文件。由于它们属于FilterOutputStream,需要传入InputStream或OutputStream进行包装。读者可以通过实践并在评论区交流心得。
8993

被折叠的 条评论
为什么被折叠?



