字节流读写文件的效率问题
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);
}
实验显示用二进制流会比字符流的程序运行更为快捷,这就使得效率不一样,变得极大的提高。
浙公网安备 33010602011771号