黑马程序员技术交流社区

标题: Java基础学习日记 - 复制非文本文件(IO流部分) [打印本页]

作者: qihuan    时间: 2015-7-14 16:06
标题: Java基础学习日记 - 复制非文本文件(IO流部分)
  1. package homeWork;

  2. import java.io.*;
  3. /**
  4. * 复制一个MP3文件
  5. * @author Qihuan
  6. *
  7. */
  8. public class CopyTest {
  9.         public static void main(String[] args) {
  10. //                copy_1();
  11.                 copy_2();
  12.         }

  13.         //通过字节数组的方式复制文件
  14.         private static void copy_1() {
  15.                
  16.                 long start = System.currentTimeMillis();

  17.                 FileInputStream fis = null;
  18.                 FileOutputStream fos = null;
  19.                
  20.                 try {
  21.                        
  22.                         fis = new FileInputStream("G:\\1.mp3");
  23.                         fos = new FileOutputStream("C:\\Users\\Qihuan\\Desktop\\看见.mp3");
  24.                        
  25.                         byte[] buf = new byte[1024];
  26.                        
  27.                         int len;
  28.                        
  29.                         while ((len = fis.read(buf))!=-1) {
  30.                                 fos.write(buf, 0,len);
  31.                         }
  32.                        
  33.                 } catch (IOException e) {
  34.                        
  35.                         throw new RuntimeException("文件复制失败");
  36.                        
  37.                 } finally {
  38.                        
  39.                         if(fis != null){
  40.                                 try {
  41.                                         fis.close();
  42.                                 } catch (IOException e) {
  43.                                         throw new RuntimeException("关不失败");
  44.                                 }
  45.                         }
  46.                        
  47.                         if(fos != null){
  48.                                 try {
  49.                                         fos.close();
  50.                                 } catch (IOException e) {
  51.                                         throw new RuntimeException("关闭失败");
  52.                                 }
  53.                         }
  54.                 }
  55.                
  56.                 long end = System.currentTimeMillis();
  57.                 System.out.println("复制成功!\n用时:"+(end - start)+"毫秒");
  58.         }
  59.        
  60.         //通过缓冲区的方式复制文件
  61.         private static void copy_2() {
  62.                 long start = System.currentTimeMillis();
  63.                
  64.                 BufferedInputStream bufis = null;
  65.                 BufferedOutputStream bufos = null;
  66.                
  67.                 try {
  68.                        
  69.                         bufis = new BufferedInputStream(new FileInputStream("G:\\1.mp3"));
  70.                         bufos = new BufferedOutputStream(new FileOutputStream("C:\\Users\\Qihuan\\Desktop\\看见.mp3"));
  71.                        
  72.                         byte[] buf = new byte[1024];
  73.                        
  74.                         int len;
  75.                        
  76.                         while ((len = bufis.read(buf))!=-1) {
  77.                                 bufos.write(buf, 0,len);
  78.                         }
  79.                        
  80.                 } catch (IOException e) {
  81.                        
  82.                         throw new RuntimeException("文件复制失败");
  83.                        
  84.                 } finally {
  85.                        
  86.                        
  87.                         try {
  88.                                 if(bufis != null)
  89.                                         bufis.close();
  90.                         } catch (IOException e) {
  91.                                 throw new RuntimeException("关闭失败");
  92.                         }
  93.                        
  94.                         try {
  95.                                 if(bufos != null)
  96.                                         bufos.close();
  97.                         } catch (IOException e) {
  98.                                 throw new RuntimeException("关闭失败");
  99.                         }
  100.                        
  101.                 }
  102.                 long end = System.currentTimeMillis();
  103.                 System.out.println("复制成功!\n用时:"+(end - start)+"毫秒");
  104.         }
  105. }
复制代码



作者: 路途    时间: 2015-7-14 17:15
赞!加油!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2