改進後的代碼:
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 }
用時對比:
期末作業規劃:
做一個類似下面的視頻播放器
實現功能:
播放本地視頻
播放/暫停
快進/快退
聲音調節
全屏
最小化/最大化/關閉
小組成員:王雨 程志鴻 郭強