首页 > 学院 > 开发设计 > 正文

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

2019-11-10 17:10:59
字体:
来源:转载
供稿:网友
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();	}}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表