I/O(六)DataInputStream和DataOutputStream

本文通过一个Java示例程序介绍了如何使用DataOutputStream和DataInputStream进行基本数据类型的读写操作,并解释了二进制文件的存储原理及读取过程。

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

public static void main(String[] args) throws Exception {

FileOutputStream fos=new FileOutputStream("c:\\2.txt");

DataOutputStream dos=new DataOutputStream(fos);

dos.writeByte(1);

dos.writeShort(2);

dos.writeInt(3);

dos.flush();

dos.close();

FileInputStream fis=new FileInputStream("c:\\2.txt");

DataInputStream dis=new DataInputStream(fis);

System.out.println(dis.readByte());

System.out.println(dis.readShort());

System.out.println(dis.readInt());

}

数据流一般在通信中用,当我们在网络通信中自定义消息协议的时候会用到,以后具体再说。

首先看这几行代码,DataOutputStream 和DataInputStream 典型的是一种包装流,

当我往外写的时候,先写的是一个byte,然后是一个short,最后是一个int,当我们打开这个二进制文件的时候会是这样

 

这里存放的是数据的十六进制,0--f代表每一个是一个字节的长度,当我们读取一个byte的时候,首先读取的是0下面的两个数字01,它的二进制就是0000 0001,然后读取short 十六位,就是12下面的数字,二进制是 0000 0000 0000 0010 ,以此类推。这里面有一个read()方法,这个方法是一次读取一个byte,如果读取完毕则返回-1,如果读取此文件的话那就是0, 2, 0, 0, 0, 3

当然,你是按照什么顺序写的就按照什么顺序读取,如果第一次就读取一个int的话那就是一次读取32位,将0--3下面的数字读取,然后转成十进制,是一个很大的数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值