// 使用BufferedInputStream和BufferedOutputStream实现非文本文件的复制
@Test
public void testCopyFile() {
// 1.提供读入、写出的文件
File file1 = new File("1.png");
File file2 = new File("2.png");
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
// 2.先创建相应的节点流,FileInputStream、FileOutputStream
FileInputStream fis = new FileInputStream(file1);
FileOutputStream fos = new FileOutputStream(file2);
// 3.将创建的节点流的对象作为形参传递给缓冲流的构造器中
bis = new BufferedInputStream(fis);
bos = new BufferedOutputStream(fos);
// 4.具体的实现文件复制的操作
byte[] b = new byte[1024];
int len;
while ((len = bis.read(b)) != -1) {
bos.write(b, 0, len);
bos.flush();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
// 5、关闭相应的流
if (bos != null) {
try {
bos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}