标签:
1. 需求:把e:\\哥有老婆.mp4 复制到当前项目目录下的copy.mp4中
字节流四种方式复制文件:
• 基本字节流一次读写一个字节
• 基本字节流一次读写一个字节数组
• 高效字节流一次读写一个字节
• 高效字节流一次读写一个字节数组
2. 代码示例:
1 package cn.itcast_06; 2 3 import java.io.BufferedInputStream; 4 import java.io.BufferedOutputStream; 5 import java.io.FileInputStream; 6 import java.io.FileOutputStream; 7 import java.io.IOException; 8 9 /* 10 * 需求:把e:\\哥有老婆.mp4复制到当前项目目录下的copy.mp4中 11 * 12 * 字节流四种方式复制文件: 13 * 基本字节流一次读写一个字节: 共耗时:117235 毫秒 14 * 基本字节流一次读写一个字节数组: 共耗时:156 毫秒 15 * 高效字节流一次读写一个字节: 共耗时:1141 毫秒 16 * 高效字节流一次读写一个字节数组: 共耗时:47 毫秒 17 */ 18 public class CopyMp4Demo { 19 public static void main(String[] args) throws IOException { 20 long start = System.currentTimeMillis(); 21 // method1("e:\\哥有老婆.mp4", "copy1.mp4"); 22 // method2("e:\\哥有老婆.mp4", "copy2.mp4"); 23 // method3("e:\\哥有老婆.mp4", "copy3.mp4"); 24 method4("e:\\哥有老婆.mp4", "copy4.mp4"); 25 long end = System.currentTimeMillis(); 26 System.out.println("共耗时:" + (end - start) + "毫秒"); 27 } 28 29 // 高效字节流一次读写一个字节数组: 30 public static void method4(String srcString, String destString) 31 throws IOException { 32 BufferedInputStream bis = new BufferedInputStream(new FileInputStream( 33 srcString)); 34 BufferedOutputStream bos = new BufferedOutputStream( 35 new FileOutputStream(destString)); 36 37 byte[] bys = new byte[1024]; 38 int len = 0; 39 while ((len = bis.read(bys)) != -1) { 40 bos.write(bys, 0, len); 41 } 42 43 bos.close(); 44 bis.close(); 45 } 46 47 // 高效字节流一次读写一个字节: 48 public static void method3(String srcString, String destString) 49 throws IOException { 50 BufferedInputStream bis = new BufferedInputStream(new FileInputStream( 51 srcString)); 52 BufferedOutputStream bos = new BufferedOutputStream( 53 new FileOutputStream(destString)); 54 55 int by = 0; 56 while ((by = bis.read()) != -1) { 57 bos.write(by); 58 59 } 60 61 bos.close(); 62 bis.close(); 63 } 64 65 // 基本字节流一次读写一个字节数组 66 public static void method2(String srcString, String destString) 67 throws IOException { 68 FileInputStream fis = new FileInputStream(srcString); 69 FileOutputStream fos = new FileOutputStream(destString); 70 71 byte[] bys = new byte[1024]; 72 int len = 0; 73 while ((len = fis.read(bys)) != -1) { 74 fos.write(bys, 0, len); 75 } 76 77 fos.close(); 78 fis.close(); 79 } 80 81 // 基本字节流一次读写一个字节 82 public static void method1(String srcString, String destString) 83 throws IOException { 84 FileInputStream fis = new FileInputStream(srcString); 85 FileOutputStream fos = new FileOutputStream(destString); 86 87 int by = 0; 88 while ((by = fis.read()) != -1) { 89 fos.write(by); 90 } 91 92 fos.close(); 93 fis.close(); 94 } 95 }
Java基础知识强化之IO流笔记30:字节流4种方式复制mp4并测试效率
标签:
原文地址:http://www.cnblogs.com/hebao0514/p/4862099.html