第一种,效率低
FileInputStream fis = new FileInputStream("d:\\iotest\\tupian.jpg");
FileOutputStream fos = new FileOutputStream("d:\\iotest\\tupianCopy.jpg");
int b;
while((b = fis.read()) != -1) {
fos.write(b);
}
fis.close();
fos.close();
第二种,定义一个大字节数组,效率高,但可能会出现内存泄出
FileInputStream fis = new FileInputStream("d:\\iotest\\tupian.jpg");
FileOutputStream fos = new FileOutputStream("d:\\iotest\\tupianCopy2.jpg");
byte[] arr = new byte[fis.available()];
fis.read(arr);
fos.write(arr);
fis.close();
fos.close();
第三种,定义一个小字节数组
FileInputStream fis = new FileInputStream("D:\\iotest\\1.txt");
FileOutputStream fos = new FileOutputStream("D:\\iotest\\2.txt");
byte[] arr = new byte[1024];
int len;
while((len = fis.read(arr)) != -1) {
fos.write(arr, 0, len);
}
fis.close();
fos.close();
第四种,用BufferedInputStream\BufferedOutputStream
FileInputStream fis = new FileInputStream("d:\\iotest\\1.txt");
FileOutputStream fos = new FileOutputStream("d:\\iotest\\copy1.txt");
/**
* 对输入\出流进行包装
*/
BufferedInputStream bis = new BufferedInputStream(fis);
BufferedOutputStream bos = new BufferedOutputStream(fos);
int b;
while((b = bis.read()) != -1) {
bos.write(b);
}
/**
* 关包装后的流
*/
bis.close();
bos.close();