java装饰设计模式------缓冲流

来源:互联网 发布:如何搭建阿里云服务器 编辑:程序博客网 时间:2024/05/16 18:15

小弟不才,最近在做一个压缩文件的方法,读写效率慢让我为之头疼,于是在网上查了很多资料,才发现缓冲流(很惭愧,学了几年java了居然才用到缓冲流),于是记录下来,希望以后不要再犯此类错误。


废话不多说了,先看测试结果


首先copy一个文件,文件大约为91.9 M







接下来看加缓冲和不添加缓冲的效果

不添加缓冲的


</pre><pre name="code" class="java">public void copy(String inputName,String outName){FileInputStream inputStream=null;FileOutputStream outputStream=null;try {inputStream=new FileInputStream(new File(inputName));outputStream=new FileOutputStream(new File(outName));int BUFFERSIZE = 2 << 10;int len=0;byte[] buffer=new byte[BUFFERSIZE];while((len=inputStream.read())!=-1){//outputStream.write(buffer, 0, len);outputStream.write(len);}} catch (Exception e) {e.printStackTrace();}finally{try {inputStream.close();outputStream.close();} catch (IOException e) {e.printStackTrace();}}}

测试结果是292517毫秒


增加缓冲的

public void copy(String inputName,String outName){FileInputStream inputStream=null;FileOutputStream outputStream=null;try {inputStream=new FileInputStream(new File(inputName));outputStream=new FileOutputStream(new File(outName));int BUFFERSIZE = 2 << 10;int len=0;byte[] buffer=new byte[BUFFERSIZE];while((len=inputStream.read(buffer,0,BUFFERSIZE))!=-1){outputStream.write(buffer, 0, len);//outputStream.write(len);}} catch (Exception e) {e.printStackTrace();}finally{try {inputStream.close();outputStream.close();} catch (IOException e) {e.printStackTrace();}}}

测试结果是323毫秒


0 0