改进后的代码:
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 }
用时对比:
期末作业规划:
做一个类似下面的视频播放器
实现功能:
播放本地视频
播放/暂停
快进/快退
声音调节
全屏
最小化/最大化/关闭
小组成员:王雨 程志鸿 郭强