| package cn.itcast_03; | 
|  |  | 
|  | import java.io.BufferedInputStream; | 
|  | import java.io.BufferedOutputStream; | 
|  | import java.io.FileInputStream; | 
|  | import java.io.FileOutputStream; | 
|  | import java.io.IOException; | 
|  |  | 
|  | /* | 
|  | * 数据源: | 
|  | * d:\\哥有老婆.mp4 | 
|  | * 目的地: | 
|  | * 项目路径下copy.mp4 | 
|  | * | 
|  | * 四种方式: | 
|  | * A:基本字节流一次读写一个字节 67023毫秒 | 
|  | * B:基本字节流一次读写一个字节数组 共耗时:102毫秒 | 
|  | * C:高效字节流一次读写一个字节 共耗时:650毫秒 | 
|  | * D:高效字节流一次读写一个字节数组 共耗时:36毫秒 | 
|  | */ | 
|  | public class CopyMP4Demo { | 
|  | public static void main(String[] args) throws IOException { | 
|  | long start = System.currentTimeMillis(); | 
|  | // method1(); | 
|  | // method2(); | 
|  | // method3(); | 
|  | method4(); | 
|  | long end = System.currentTimeMillis(); | 
|  | System.out.println("共耗时:" + (end - start) + "毫秒"); | 
|  | } | 
|  |  | 
|  | // 基本字节流一次读写一个字节 | 
|  | public static void method1() throws IOException { | 
|  | FileInputStream fis = new FileInputStream("d:\\哥有老婆.mp4"); | 
|  | FileOutputStream fos = new FileOutputStream("copy1.mp4"); | 
|  |  | 
|  | int by = 0; | 
|  | while ((by = fis.read()) != -1) { | 
|  | fos.write(by); | 
|  | } | 
|  |  | 
|  | fos.close(); | 
|  | fis.close(); | 
|  | } | 
|  |  | 
|  | // 基本字节流一次读写一个字节数组 | 
|  | public static void method2() throws IOException { | 
|  | FileInputStream fis = new FileInputStream("d:\\哥有老婆.mp4"); | 
|  | FileOutputStream fos = new FileOutputStream("copy2.mp4"); | 
|  |  | 
|  | byte[] bys = new byte[1024]; | 
|  | int len = 0; | 
|  | while ((len = fis.read(bys)) != -1) { | 
|  | fos.write(bys, 0, len); | 
|  | } | 
|  |  | 
|  | fos.close(); | 
|  | fis.close(); | 
|  | } | 
|  |  | 
|  | // 高效字节流一次读写一个字节 | 
|  | public static void method3() throws IOException { | 
|  | BufferedInputStream bis = new BufferedInputStream(new FileInputStream( | 
|  | "d:\\哥有老婆.mp4")); | 
|  | BufferedOutputStream bos = new BufferedOutputStream( | 
|  | new FileOutputStream("copy3.mp4")); | 
|  |  | 
|  | int by = 0; | 
|  | while ((by = bis.read()) != -1) { | 
|  | bos.write(by); | 
|  | } | 
|  |  | 
|  | bos.close(); | 
|  | bis.close(); | 
|  | } | 
|  |  | 
|  | // 高效字节流一次读写一个字节数组 | 
|  | public static void method4() throws IOException { | 
|  | BufferedInputStream bis = new BufferedInputStream(new FileInputStream( | 
|  | "d:\\哥有老婆.mp4")); | 
|  | BufferedOutputStream bos = new BufferedOutputStream( | 
|  | new FileOutputStream("copy4.mp4")); | 
|  |  | 
|  | byte[] bys = new byte[1024]; | 
|  | int len = 0; | 
|  | while ((len = bis.read(bys)) != -1) { | 
|  | bos.write(bys, 0, len); | 
|  | } | 
|  |  | 
|  | bos.close(); | 
|  | bis.close(); | 
|  | } | 
|  | } |