改進後的代碼:
1 package CopyFile;
2
3 import java.io.FileInputStream;
4 import java.io.FileNotFoundException;
5 import java.io.FileOutputStream;
6 import java.io.IOException;
7
8 /**
9 * 實現文件復制
10 * @author Administrator
11 *
12 */
13 public class CopyFile {
14 public static void copyBytesFile(String sFileName,String dFileName) throws IOException{
15
16 //創建文件輸入流對象和文件輸出流對象
17 //文件輸入流對象與源文件關聯
18 FileInputStream fis = new FileInputStream(sFileName);
19 //文件輸出流對象與目標文件關聯
20 FileOutputStream fos = new FileOutputStream(dFileName);
21 //循環讀取文件的內容,同時寫出到外部的磁盤文件
22 int read = fis.read();//從關聯的源文件中讀一個字節,如果到達文件末,返回值為-1
23 while(read != -1){
24 fos.write(read);//向關聯的目標文件寫出一個字節
25 read = fis.read();
26 }
27 //清空緩存關閉流對象
28 fis.close();
29 fos.close();
30 }
31
32 public static void copyBytesFile2(String sFileName,String dFileName) throws IOException{
33
34 //創建文件輸入流對象和文件輸出流對象
35 //文件輸入流對象與源文件關聯
36 FileInputStream fis = new FileInputStream(sFileName);
37 //文件輸出流對象與目標文件關聯
38 FileOutputStream fos = new FileOutputStream(dFileName);
39 //循環讀取文件的內容,同時寫出到外部的磁盤文件
40 byte[] b = new byte[1024];
41 /*從關聯的源文件中讀多個字節,保存到字節數組b中,如果到達文件末。
42 * 返回值為-1,否則返回值為實際讀到的字節數。
43 */
44 int read = fis.read(b);//從關聯的源文件中讀一個字節,如果到達文件末,返回值為-1
45 while(read != -1){
46 fos.write(b);//向關聯的目標文件寫出一個字節
47 read = fis.read(b);
48 }
49 //清空緩存關閉流對象
50 fis.close();
51 fos.close();
52 }
53 /**
54 * @param args
55 */
56
57 public static void main(String[] args) {
58 // TODO Auto-generated method stub
59 long t1,t2;
60 t1 = System.currentTimeMillis();
61 try {
62 CopyFile.copyBytesFile2("a.mp3", "temp.mp3");
63 } catch (IOException e) {
64 // TODO Auto-generated catch block
65 e.printStackTrace();
66 }
67 t2 = System.currentTimeMillis();
68 System.out.println("用時:" + (t2 - t1));
69
70 }
71
72 }
用時對比:


期末作業規劃:
做一個類似下面的視頻播放器

實現功能:
播放本地視頻
播放/暫停
快進/快退
聲音調節
全屏
最小化/最大化/關閉
小組成員:王雨 程志鴻 郭強