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(); }}
新闻热点
疑难解答