IO流_字节流四种方式复制MP4并测试效率

来源:互联网 发布:贵州浪人网络 编辑:程序博客网 时间:2024/05/29 07:01
package cn.itcast_06;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;/* * 需求:把e:\\哥有老婆.mp4复制到当前项目目录下的copy.mp4中 *  * 哥有老婆.mp4文件大小:65,258,338 字节 * 字节流四种方法复制文件: * 基本字节流一次读写一个字节:共耗时:607844毫秒(607.844秒=10多分钟) * 基本字节流一次读写一个字节数组:共耗时:1042毫秒(1.042秒) * 高效字节流一次读写一个字节:共耗时:5575毫秒(5.575秒) * 高效字节流一次读写一个字节数组:共耗时:535毫秒(0.535秒) */public class CopyMp4Demo {public static void main(String[] args) throws IOException {long start = System.currentTimeMillis();method1("e:\\哥有老婆.mp4", "copy1.mp4");// method2("e:\\哥有老婆.mp4", "copy2.mp4");// method3("e:\\哥有老婆.mp4", "copy3.mp4");// method4("e:\\哥有老婆.mp4", "copy4.mp4");long end = System.currentTimeMillis();System.out.println("共耗时:" + (end - start) + "毫秒");}/** * 基本字节流一次读写一个字节 *  * @param srcString *            数据源 * @param destString *            目的地 */public static void method1(String srcString, String destString)throws IOException {// 封装数据源FileInputStream fis = new FileInputStream(srcString);// 封装目的地FileOutputStream fos = new FileOutputStream(destString);// 复制数据int len = 0;while ((len = fis.read()) != -1) {fos.write(len);}// 释放资源fos.close();fis.close();}/** * 基本字节流一次读写一个字节数组 *  * @param srcString *            数据源 * @param destString *            目的地 */public static void method2(String srcString, String destString)throws IOException {// 封装数据源FileInputStream fis = new FileInputStream(srcString);// 封装目的地FileOutputStream fos = new FileOutputStream(destString);// 复制数据byte[] bys = new byte[1024];int len = 0;while ((len = fis.read(bys)) != -1) {fos.write(bys, 0, len);}// 释放资源fos.close();fis.close();}/** * 高效字节流一次读写一个字节 *  * @param srcString *            数据源 * @param destString *            目的地 */public static void method3(String srcString, String destString)throws IOException {// 封装数据源BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcString));// 封装目的地BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destString));// 复制数据int len = 0;while ((len = bis.read()) != -1) {bos.write(len);}// 释放资源bos.close();bis.close();}/** * 高效字节流一次读写一个字节数组 *  * @param srcString *            数据源 * @param destString *            目的地 */public static void method4(String srcString, String destString)throws IOException {// 封装数据源BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcString));// 封装目的地BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destString));// 复制数据byte[] bys = new byte[1024];int len = 0;while ((len = bis.read(bys)) != -1) {bos.write(bys, 0, len);}// 释放资源bos.close();bis.close();}}

0 0
原创粉丝点击