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

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

  前两个远远快过后面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. [WF] Quickstart Sample

    [WF] Quickstart Sample 前言 Workflow Foundation(WF),总是给人一种很有用.可是却不知道怎么用的印象.这主要是因为前置的功课太多.要整合很多底层知识,才能完 ...

  2. C#生成条形码 Code128算法

    条形有很多种,Code128是比较常用的一种,是一种高密度条码, CODE128 码可表示从 ASCII 0 到ASCII 127 共128个字符,故称128码.其中包含了数字.字母和符号字符. Co ...

  3. jQuery Flickerplate 幻灯片

    Flickerplate 是个轻量级 jQuery 插件,大小仅为 12 kb.它允许用户点击鼠标然后转换内容,非常容易使用,响应式,支持触摸设备 在线实例 默认 圆点导航位置 动画方式 深色主题 H ...

  4. js argument实参集合与局部变量、参数关系

    形参 形式上传递的参数 function fn1(a,b,c) {//a,b,c就是形参 实参 实际传递的参数 fn1 (1,2,5);//1,2,5就是实参 argument 定义: 实参的集合 用 ...

  5. C# 线程同步

    Mutex 类 使用Mutex类来同步两个单独的程序.Mutex是一种原始的同步方式,其只对一个线程授予对共享资源的独占访问. const string NutexName = "C&quo ...

  6. Exchange Server 2013 一步步安装图解

    前言: 这是一份为Exchange菜鸟准备的2013版本安装文档,安装环境为Windows Server 2012 DataCenter 版本,在安装之前,我对安装Exchange也是处于一无所知的状 ...

  7. SharePoint 2013 Installation and Configuration Issues

    # Issue 1: During Installing SharePoint 2013 Prerequisites there was an error in installing Applicat ...

  8. C语言中的指针和内存泄漏

    引言 对于任何使用C语言的人,如果问他们C语言的最大烦恼是什么,其中许多人可能会回答说是指针和内存泄漏.这些的确是消耗了开发人员大多数调试时间的事项.指针和内存泄漏对某些开发人员来说似乎令人畏惧,但是 ...

  9. Swift开发第三篇——Playground

    本篇分为两部分: 一.Playground的延时运行 二.Playground的可视化 一.Playground的延时运行 Playground 就是提供一个可以即时编译的类似 REPL 的环境,他为 ...

  10. 转载:sql关联查询

    inner join(等值连接)只返回两个表中联结字段相等的行 left join(左联接)返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接)返回包括右表中的所有记录和 ...