高级流 对基本数据的读写操作 DataInputStream&DataOutputStream

对基本数据的读写操作
DataInputStream
DataOutputStream

写基本类型数据
void writeInt(int d): 一次写入4个字节,将int值转化为字节写出
void writeLong(long l):一次写入8个字节,将long值转化为字节写出
void write…

读基本操作
int readInt():一次性读取4个字节,将其转化为对应的int值
double readDouble():一次性读取8个字节,将其转化为对应的double值

高级流可以套高级流可以再套上低级流

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 基于基本数据类型数据读写操作的高级流
 * DataInputStream
 * DataOutputStream
 * @author Administrator
 *
 */
public class DataInputAndOutputStream {

	public static void main(String[] args) throws IOException {
		/**
		 * 创建用于读写文件的节点流
		 * fis fos
		 */
		FileOutputStream fos=new FileOutputStream("data.dat");
		BufferedOutputStream bos=new BufferedOutputStream(fos);
		DataOutputStream dos=new DataOutputStream(bos);
		/**
		 * 通过高级流写基本类型数据
		 */
		//写入一个int最大值
		dos.writeInt(Integer.MAX_VALUE);
		//使用UTF-8编码写出一个字符串
		dos.writeUTF("你好啊!");
		//写出一个double值
		dos.writeDouble(2.5);
		/**
		 * 写出原理
		 * 高级流dos会将这些数据转化为相应的字节.
		 * 然后通过它处理的低级流fos将这些字节写到文件
		 */
		/**
		 * jdk中的流都有一个特点
		 * 高级流的close方法中,会将其处理的流关闭后再将自身关闭
		 * 所以,我们只需关闭最外层的高级流即可.
		 */
		//dos不必flush 但是这样做没有危害,比较保险
		dos.flush();
		dos.close();
		FileInputStream fis=new FileInputStream("data.dat");
		BufferedInputStream bis=new BufferedInputStream(fis);
		DataInputStream dis=new DataInputStream(bis);
		//读取一个int值
		/**
		 * dis会通过fis从文件中连续读取4个字节,然后再将这四个字节组成int值返回.
		 */
		int num=dis.readInt();
		String str=dis.readUTF();
		double d=dis.readDouble();
		System.out.println(num+","+str+","+d);//2147483647,你好啊!,2.5
		
		dis.close();
		

	}

}

DataInputStream可以配合BufferedInputStream 和FileInputStream来提高效率
DataOutputStream也是如此

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值