备忘总结:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class 读取的方式 {
public static void main(String[] args) throws IOException {
method4();
}
private static void method4() throws IOException{//直接开辟一个正好的数组,在文件较大的时候,不建议使用
// TODO Auto-generated method stub
FileInputStream fi=new FileInputStream("d:\\meimei.jpg");
FileOutputStream fo=new FileOutputStream("d:\\meimei1.jpg");
byte arr[]=new byte[fi.available()];
fi.read(arr);
fo.write(arr);
fi.close();
fo.close();
}
private static void method3() throws IOException{//使用所给的缓冲区
// TODO Auto-generated method stub
FileInputStream fi=new FileInputStream("d:\\meimei.jpg");
BufferedInputStream bi=new BufferedInputStream(fi);
FileOutputStream fo=new FileOutputStream("d:\\meimei1.jpg");
BufferedOutputStream bf=new BufferedOutputStream(fo);
int len;
while((len=bi.read())!=-1)
{
bf.write(len);
}
bi.close();
bf.close();
}
private static void method2() throws IOException{//添加自制的缓冲区
// TODO Auto-generated method stub
FileInputStream fi=new FileInputStream("d:\\meimei.jpg");
FileOutputStream fo=new FileOutputStream("d:\\meimei1.jpg");
byte arr[]=new byte[1024];
int len;
while((len=fi.read(arr))!=-1)
{
fo.write(arr,0,len);
}
fi.close();
fo.close();
}
private static void method1() throws IOException {//一个一个读,效率极低
// TODO Auto-generated method stub
FileInputStream fi=new FileInputStream("d:\\meimei.jpg");
FileOutputStream fo=new FileOutputStream("d:\\meimei1.jpg");
int dex;
while((dex=fi.read())!=-1)
{
fo.write(dex);
}
fi.close();
fo.close();
}
}