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
- java装饰设计模式------缓冲流
- Java基础21--IO流--装饰设计模式--缓冲流
- java IO流 [缓冲技术] [装饰设计模式]
- 我的字符缓冲输入流(装饰设计模式)
- 11对缓冲流分析出来的设计模式--装饰设计模式
- Java装饰设计模式
- Java 装饰设计模式
- Java 装饰设计模式
- java 装饰设计模式
- Java 装饰设计模式
- java 装饰设计模式
- Java装饰设计模式
- Java 装饰设计模式
- Java装饰设计模式
- 心得---字符流、缓冲流、装饰模式
- Java 设计模式 --装饰模式
- Java 设计模式-----装饰模式
- java设计模式-装饰模式
- phoenixframe自动化平台使用多批次数据进行接口测试的示例
- HDU 2059
- java线程:大总结
- Linux 下的两个特殊的文件 -- /dev/null 和 /dev/zero 简介及对比
- mongodb中的数据库的备份和恢复/数据的导入和导出
- java装饰设计模式------缓冲流
- hibernate 查询类小结
- PullToRefreshExpandableListView 和BaseExpandableListAdapter
- Linux Pthread——2
- 一个模拟ajax异步上传文件例子
- 通过程序调用tomcat的manager的text模式的命令来自动部署项目
- HttpUrlConnection 的 setDoOutput 与 setDoInput
- JSON.parse()和JSON.stringify()
- [Android基础]Android中如何使用Intent传递对象