电脑太渣,好慢。。反正速率是:

高效字节流一次读写一个字节数组  >  基本字节流一次读写一个字节数组  > 高效字节流一次读写一个字节 >  基本字节流一次读写一个字节

  前两个远远快过后面2个
 package zl_IOdemo;

 import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; /*
* 需求:把D:\music\音乐\Beyond - 不再犹豫.mp3复制到当前项目目录下的copy.mp4中
*
* 字节流四种方式复制文件:
* 基本字节流一次读写一个字节:
* 基本字节流一次读写一个字节数组:
* 高效字节流一次读写一个字节:
* 高效字节流一次读写一个字节数组:
*/
public class CopyMp4 { public static void main(String[] args) throws IOException {
long start = System.currentTimeMillis();
//分别针对四种方式各创建一个方法,
//参数列表:String 数据源 String 目的地
//返回类型 void
method1("D:\\music\\音乐\\Beyond - 不再犹豫.mp3","copy.mp3");
//method2("D:\\music\\音乐\\Beyond - 不再犹豫.mp3","copy.mp3");
//method3("D:\\music\\音乐\\Beyond - 不再犹豫.mp3","copy.mp3");
//method4("D:\\music\\音乐\\Beyond - 不再犹豫.mp3","copy.mp3");
long end = System.currentTimeMillis();
System.out.println(end);
System.out.println("一共耗时"+(end - start)+"毫秒"); } private static void method4(String start , String end) throws IOException {
//高效字节流一次读写一个字节数组
BufferedInputStream in = new BufferedInputStream(new FileInputStream(start));
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(end));
byte[] by = new byte[1024];
int lend = 0;
while((lend = in.read(by)) != -1){
out.write(by,0,lend);
}
in.close();
out.close(); } private static void method3(String start , String end) throws IOException {
// 高效字节流一次读写一个字节
BufferedInputStream in = new BufferedInputStream(new FileInputStream(start));
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(end));
int lend = 0;
while(( lend = in.read()) != -1){
out.write(lend);
}
in.close();
out.close();
} private static void method2(String start , String end) throws IOException {
// 基本字节流一次读写一个字节数组
FileInputStream in = new FileInputStream(start);
FileOutputStream out = new FileOutputStream(end); byte[] by = new byte[1024];
int lend = 0;
while((lend = in.read(by)) != -1){
out.write(by,0,lend);
}
in.close();
out.close(); } private static void method1(String start , String end) throws IOException {
// 基本字节流一次读写一个字节
//创建基本字节输入流,以便从数据源读取文件
FileInputStream in = new FileInputStream(start);
//创建基本字节输出流,以便写入数据到目的地
FileOutputStream out = new FileOutputStream(end);
//复制目标文件
int i = 0;
while((i = in.read()) != -1){
out.write(i);
}
in.close();
out.close(); } }

java 20 -10 字节流四种方式复制mp3文件,测试效率的更多相关文章

  1. Java基础知识强化之IO流笔记30:字节流4种方式复制mp4并测试效率

    1. 需求:把e:\\哥有老婆.mp4 复制到当前项目目录下的copy.mp4中 字节流四种方式复制文件: • 基本字节流一次读写一个字节 • 基本字节流一次读写一个字节数组 • 高效字节流一次读写一 ...

  2. java 遍历Map的四种方式

      java 遍历Map的四种方式 CreationTime--2018年7月16日16点15分 Author:Marydon 一.迭代key&value 第一种方式:迭代entrySet 1 ...

  3. Java创建线程的四种方式

    Java创建线程的四种方式 1.继承Thread类创建线程 定义Thread类的子类,并重写该类的run方法,run()方法的内容就是该线程执行的内容 创建Thread子类的实例,即创建了线程对象. ...

  4. JAVA解析XML的四种方式

    java解析xml文件四种方式 1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这 ...

  5. java线程实现的四种方式

    java多线程的实现可以通过以下四种方式 1.继承Thread类,重写run方法 2.实现Runnable接口,重写run方法 3.通过Callable和FutureTask创建线程 4.通过线程池创 ...

  6. Java Array数组 遍历 四种方式(包含 Lambda 表达式遍历)

    示例代码如下: package com.miracle.luna.lambda; import java.util.Arrays; /** * @Author Miracle Luna * @Date ...

  7. Java List集合 遍历 四种方式(包含 Lambda 表达式遍历)

    示例代码如下: package com.miracle.luna.lambda; import java.util.ArrayList; import java.util.List; /** * @A ...

  8. Java添加事件的四种方式

    Java添加事件的几种方式(转载了codebrother的文章,做了稍微的改动) /** * Java事件监听处理——自身类实现ActionListener接口,作为事件监听器 * * @author ...

  9. java遍历map的四种方式

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

随机推荐

  1. 桂电在linux、Mac OS环境下使用出校器(支持2.14)

    这是guetsec学长在三院科协学长所抓包逆向分析1.81版出校器的基础上,用python写的一款为Mac和linux环境开发的出校器. 最后我做了略微修改,支持暂时最新版本2.14.下面有直接从源码 ...

  2. JS框架的一些小总结

    闭包结构 为了防止和别的库的冲突,用闭包把整个框架安全地保护好. 我们待会的代码都写在里面.这里创建一个全局变量"window.O",就是在window对象里加个O,它等价于 &q ...

  3. ArcObject10.1降级至10.0

    最开始接触ArcGIS版本是9.3,为了需要也安装了9.2进行开发:因为自己的电脑配置较低,所以跑不起10.0中文版:毕业工作后,行业内用10.1居多(虽然10.3已出):现在10.4都要出来了:由于 ...

  4. andriod 获得drawable下所有图片

    package com.example.yanlei.my1; import android.app.AlertDialog; import android.content.Context; impo ...

  5. Python开发包推荐系列之xml、html解析器PyQuery

    使用python,喜欢她的简洁是一方面,另外就是它有着丰富的开发包 好用又方便 接下来会给大家推荐一系列很赞的开发包. 在解析html.xml过程中,我们有不少的包可以用.比如bs.lxml.xmlt ...

  6. AVL树详解

    AVL树 参考了:http://www.cppblog.com/cxiaojia/archive/2012/08/20/187776.html 修改了其中的错误,代码实现并亲自验证过. 平衡二叉树(B ...

  7. 利用UIScrollView实现几个页面的切换

    此实例可以了解一下UIScrollView的运用,以及表格跟页面跳转的内容: 原作者地址:http://www.cocoachina.com/bbs/read.php?tid=323514 效果图如下 ...

  8. 自定义cell

    思路就是创建模型,自定义cell,然后在主控制器中完成,首先要观察plist文件: Contact.h #import <Foundation/Foundation.h> @interfa ...

  9. 读取本地Json文件

    //读取Json文件  地区 //将文件拖到本地  获取json数据 //获取json文件路径 NSString *pathArea=[[NSBundle mainBundle] pathForRes ...

  10. CoreAnimation-05-CABasicAnimation

    概述 简介 CABasicAnimation是抽象类CAPropertyAnimation的子类,可以直接使用 CABasicAnimation又称基本动画,从fromValue到toValue按照指 ...