import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class fuzhi2 { public static void main(String []args){ try { FileInputStream fis =new FileInputStream("a.mp3"); FileOutputStream fos =new FileOutputStream("a4.mp3"); int read=fis.read(); byte[] buf = new byte[1024]; int len = 0 ; while((len=fis.read(buf)) != -1){ fos.write(buf,0,len); // read=fis.read(); } // while(read !=-1){ // fos.write(read); // read=fis.read(); // } fis.close(); fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
通过对代码的读写进行一些改变,可以让原本缓慢的读写变得高效率起来,原本复制一首歌曲需要10s以上,现在通过改善,1s都用不了即能把歌曲复制出来。更改的代码如下:
原代码:
read=fis.read(); while(read !=-1){ fos.write(read); read=fis.read(); } 更改后:
int read=fis.read(); byte[] buf = new byte[1024]; int len = 0 ; while((len=fis.read(buf)) != -1){ fos.write(buf,0,len);} 更改后一次往磁盘文件中写入了1024个字节,而原代码方法一次只写入1个字节,则需要写1024次,这就使得效率不一样,运行速度也不一样。
时间: 2024-11-08 03:40:02