java IO 学习

(1)

程序进行读入、读出时,数据的来源(去处)并不一定是文件,也有可能是内存上的一块空间如一个数组,ByteArrayInputStream、ByteArrayOutputStream可以解决此类问题,且从其构造函数上可以看出,此两种类型只适用于解决内存上数据的读入、读出,不能用于文件。

 

ByteArrayInputStream和其他读入流并无太大差异,只不过其读取对象有文件变为数组, ByteArrayOutputStream则有些不同,bos可以将读取的内容存在自身中,也就是说bos可以像一个数组或容器 一样存储内容。

 

 

byte t[] = {1,2,3};

		byte m[] = new byte[3];
		ByteArrayInputStream bis = new ByteArrayInputStream(t);
		ByteArrayOutputStream bos = new ByteArrayOutputStream();
		int b = bis.read();
		while(b!=-1){
			bos.write(b);
			b = bis.read();
		}		
		System.out.println(bos.size());

bos也可通过toByteArray()方法转为byte数组。

 

 

 

(2) 根据数据来源的不同(来自文件或来自内存),java IO中分出了两部分对象对此进行处理,以FileInputStream(FileOutputStream)为代表的一类,此类别没有相应的方法对内存中的各种基础类型进行读写;和以DataInputStream(DataOutputStream)为代表的一类,此类别没有相应的方法对文件中的数据进行读写,

但在某些特殊情况下,需要将这两部分对象的方法进行融合才能达到要求,因此,java IO 设计了一种过滤机制,即通过构造方法将不同的类层层嵌套用来达到目的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值