字节流读写文件的效率问题
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class p1 { 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);
}
实验显示用二进制流会比字符流的程序运行更为快捷,这就使得效率不一样,变得极大的提高。