先看下继承的关系:
这两个流,也是装饰流!它们可以直接写入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流对象。
好了,亲手试试吧,评论区交流!