字节流读写文件效率问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字节流读写文件效率问题相关的知识,希望对你有一定的参考价值。
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次,这就使得效率不一样,运行速度也不一样。
以上是关于字节流读写文件效率问题的主要内容,如果未能解决你的问题,请参考以下文章