简单说一下DataInputStream和DataOutputStream这两个流

本文介绍了Java中的DataInputStream和DataOutputStream,它们作为装饰流可以直接处理基础数据类型。通过这两个流,可以方便地进行数据存取操作,例如写入long类型数据。当使用writeChar方法时,数据会被直接写入文件。由于它们属于FilterOutputStream,需要传入InputStream或OutputStream进行包装。读者可以通过实践并在评论区交流心得。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看下继承的关系:

在这里插入图片描述
这两个流,也是装饰流!它们可以直接写入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流对象。

好了,亲手试试吧,评论区交流!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值