IO中关于自定义缓冲区和使用默认缓冲区哪个效率更高的对比

//自己测试了一个3.8G的文件,有兴趣的可以自己试试看,初学java写的不对的地方希望大家能指出,有疑问可以留言一起探讨,谢谢!
 1 package cn.String.Day.IO;
 2
 3 import java.io.*;
 4
 5 /**
 6  * Created by Void on 2017/6/20.
 7  */
 8         public class copyInputOutput {
 9             public static void main(String[] args) throws IOException {
10                 bufferTime();
11                 imbufferTime();
12
13             }
14     private static void imbufferTime() throws IOException {
15         FileInputStream fileInputStream = new FileInputStream("D:\\360安全浏览器下载\\win7中文旗舰版64位系统.iso");
16         FileOutputStream fileOutputStream = new FileOutputStream("e:\\win7旗舰版64bit.iso");
17         long startTime = System.currentTimeMillis() ;
18         byte[] by = new byte[4096];
19         int len = 0;
20         while ((len = fileInputStream.read(by))!=-1){
21             fileOutputStream.write(by,0,len);
22
23         }
24         fileOutputStream.close();
25         fileInputStream.close();
26         long endTime = System.currentTimeMillis();
27         System.out.println("自定义缓冲花费的时间是:"+(endTime-startTime)/1000);
28     }
29
30     private static void bufferTime() throws IOException {
31
32         BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream("D:\\360安全浏览器下载\\win7中文旗舰版64位系统.iso"),4096);
33
34         BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream("e:\\win7旗舰版64bit.iso"),4096);
35         long startTime = System.currentTimeMillis() ;
36         int len = 0;
37         while ((len = bufferedInputStream.read())!=-1){
38             bufferedOutputStream.write(len);
39
40         }
41         bufferedOutputStream.close();
42         bufferedInputStream.close();
43         long endTime = System.currentTimeMillis();
44         System.out.println("原缓冲花费的时间是:"+(endTime-startTime)/1000);
45     }
46 }
时间: 2024-08-19 06:17:55

IO中关于自定义缓冲区和使用默认缓冲区哪个效率更高的对比的相关文章

Spring AOP中的JDK和CGLib动态代理哪个效率更高?

一.背景 今天有小伙伴面试的时候被问到:Spring AOP中JDK 和 CGLib动态代理哪个效率更高? 二.基本概念 首先,我们知道Spring AOP的底层实现有两种方式:一种是JDK动态代理,另一种是CGLib的方式. 自Java 1.3以后,Java提供了动态代理技术,允许开发者在运行期创建接口的代理实例,后来这项技术被用到了Spring的很多地方. JDK动态代理主要涉及java.lang.reflect包下边的两个类:Proxy和InvocationHandler.其中,Invoc

错误: -source 1.6 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)

今天晚上在AS上运行校长项目时,报错如下: Error:(71, 35) 错误: -source 1.6 中不支持 diamond 运算符(请使用 -source 7 或更高版本以启用 diamond 运算符) 这个错误对应程序里的代码是: 一般正确的写法是在声明的时候指定类型,也就是: List<PublicBlogListBean>  _hotDatas = new ArrayList<PublicBlogListBean>(); 但是在JDK 1.7里新增了一个新特性: 增强

转发:maven打包时始终出现以下提示:-source 1.3 中不支持泛型(请使用 -source 5 或更高版本以启用泛型)

maven打包时始终出现以下提示: 1.-source 1.3 中不支持泛型(请使用 -source 5 或更高版本以启用泛型)List<User> userList= new ArrayList<User>(); 2.-source 1.3 中不支持注释(请使用 -source 5 或更高版本以启用注释)@WebService(endpointInterface = "com.webservice.service.LoadService") 而用命令mvn -

IDEA java:-source 1.5中不支持diamond运算符,请使用-source7或更高版本以启动diamond运算符

IDEA java:-source 1.5中不支持diamond运算符,请使用-source7或更高版本以启动diamond运算符 产生这个问题的原因是,project structure中对于JDK版本的设置和配置环境的时候选择的JDK版本不兼容. 所以修改方法为: file-project structure 将Language level修改成7以上的就可以. 原文地址:https://www.cnblogs.com/wobushitiegan/p/12254886.html

iOS中异步加载数据效率更高

在开发中有得时候虽然也能从服务器返回来数据,但是我们要根据实际情况,加快数据的显示,所以我们使用异步加载数据. 下面我们看一下如何异步加载数据 dispatch_async(dispatch_get_global_queue(0, 0), ^{ //下载数据(这里写的是使用AFNetWorking请求的数据) dispatch_async(dispatch_get_main_queue(), ^{ //更新视图(这里写的是,要把数据显示出来) }); });

Error:(18, 51) java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)

问题:主要是因为jdk版本不一样 解决: 方法一:List<String> list=new ArrayList<Stirng>(); 方法二:重新安装jdk8的版本(安装和配置环境变量) File->Project Structure->Modules->Language level 选择为7的版本,主要是因为JDK版本不支持 修改之后又出现下面的问题 问题: 解决: 结果: 原文地址:https://www.cnblogs.com/ysgcs/p/960891

IO中同步异步,阻塞与非阻塞

一.同步与异步 同步/异步, 它们是消息的通知机制 1. 概念解释 A. 同步 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回. 按照这个定义,其实绝大多数函数都是同步调用(例如sin isdigit等). 但是一般而言,我们在说同步.异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务. 最常见的例子就是 SendMessage. 该函数发送一个消息给某个窗口,在对方处理完消息之前,这个函数不返回. 当对方处理完毕以后,该函数才把消息处理函数所返回的值返回给调

IO中同步、异步与阻塞、非阻塞的区别(转)

转自:http://blog.chinaunix.net/uid-26000296-id-3754118.html 一.同步与异步同步/异步, 它们是消息的通知机制 1. 概念解释A. 同步所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回. 按照这个定义,其实绝大多数函数都是同步调用(例如sin isdigit等).但是一般而言,我们在说同步.异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务.最常见的例子就是 SendMessage.该函数发送一个消息给某个窗

IO中同步、异步与阻塞、非阻塞的区别

一.同步与异步同步/异步, 它们是消息的通知机制 1. 概念解释A. 同步所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回. 按照这个定义,其实绝大多数函数都是同步调用(例如sin isdigit等).但是一般而言,我们在说同步.异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务.最常见的例子就是 SendMessage.该函数发送一个消息给某个窗口,在对方处理完消息之前,这个函数不返回.当对方处理完毕以后,该函数才把消息处理函数所返回的值返回给调用者. B.