用缓冲字节流进行文件的复制
package com.zcc.file.copy;
import java.io.BufferedInputStream;import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* 用缓冲字节流实现较大文件的复制
*
* @author Administrator
*
*/
public class TestFileCopy {
public static void main(String[] args) throws IOException {
// 创建一个需要被复制的文件对象
File file1 = new File("D:\\a.wmv");
//
File file2 = new File("D:\\aa.wmv");
// 声明一个缓冲字节输入流,用来读file1里面的内容
BufferedInputStream bufferedInputStream = null;
// 声明一个缓冲字节输出流,用来将从file1里面读取出来的内容写入到file2中
BufferedOutputStream bufferedOutputStream = null;
try {
// 创建一个缓冲字节输入流对象,
bufferedInputStream = new BufferedInputStream(new FileInputStream(file1));
// 创建一个缓冲字节输出流对象,
bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(file2));
// 用b来接收从file里面读取出来的内容,因为每次都是读一个字节
int b = bufferedInputStream.read();
// 如果读出来的内容是-1的话,就说明读取完毕了
while (b != -1) {
// 将读取出来的内容写入到file2中
bufferedOutputStream.write(b);
// 再继续读
b = bufferedInputStream.read();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (bufferedOutputStream != null) {
// 刷新输出流
bufferedOutputStream.flush();
// 关闭输出流
bufferedOutputStream.close();
}
if (bufferedInputStream != null) {
// 关闭输入流
bufferedInputStream.close();
}
}
}
}