IO进阶------------------------------字节缓冲流

概念


之前也可以实现读写,复制等功能

但是读写最让人头疼的是效率

想想纯拿int循环写入的效率 

之后拿byte[]数组复制文件的效率 

完全不是一个级别的

那么java 觉得光拿 byte [] 数组还是不够效率,所以出现了缓冲流


缓冲类的类名都是以Buffered开头的

类如

BufferedInputStream    字节流写入缓冲类

BufferedOutputStream      字节流写出缓冲类

BufferedReader        字符流写入缓冲类

BufferedWriter         字符流写出缓冲类

自己再重申一遍   input 是往程序里写,output 是往文件里写

缓冲流小示例

public class MainTest2 {

	public static void main(String []args) throws IOException{
		
		long start = System.currentTimeMillis();
		
		FileInputStream is = null;
		FileOutputStream os = null;
		BufferedOutputStream bs = null;
		BufferedInputStream bi = null;
		
		try {
			is = new FileInputStream("E:\\io\\nox_setup_v6.1.0.0_full.exe");
			
			os = new FileOutputStream("E:\\iocopy\\nox_setup_v6.1.0.0_full.exe");
			//buffered缓冲流对象就是要把 字节流对象传入就可以了 他来操作 和之前调用的方式一摸一样
			bi = new BufferedInputStream(is);
			
			bs = new BufferedOutputStream(os);
			
			byte[] b = new byte[1024*1024];
			
			int len =  0;
			
			while ((len = bi.read(b)) != -1) {
				
				bs.write(b, 0, len);
			}
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			bs.close();
			os.close();
			is.close();
		}
		long end = System.currentTimeMillis();
		
		System.out.println("执行时间:"+(end-start)+"ms");
	}
	

但是吧,这个示例完全没有展示出缓冲流的加速效果。。。。。。。。。 还比直接用流慢了一丢丢,也许是我写错了待考证

嗯 , 又从新测试了一下  是快了一点  以后这个就是暂时的标准io流格式

还有字符缓冲流 暂时先不研究



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值