使用FileInputStream + FileOutputStream完成文件的复制
执行原理
代码演示
/*
使用FileInputStream + FileOutputStream完成文件的拷贝
拷贝的过程是一边读,一边写
文件类型随意,什么样的文件都可以拷贝
*/
public class Copy01 {
public static void main(String[] args) {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
//创建一个输入流对象,myfile.txt需要复制的文件
fis = new FileInputStream("D:\myfile.txt");
//创建一个输出流对象,复制到的地方
fos = new FileOutputStream("C:\myfile.txt");
//一边读,一边写
byte[] bytes = new byte[1024 * 1024]; //一次最多拷贝1mb
int readCound = 0;
while((readCount = fis.read(bytes)) != -1) {
fos.write(bytes, 0, readCount);
}
//刷新,输出流最后要刷新
fos.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fos != null) {
//分开try...catch的原因:一起try时,其中一个出现异常,可能会影响到另一个流的关闭
try {
fos.close();
} catch (IOException e) {
e.prionStackTrace();
}
}
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.prionStackTrace();
}
}
}
}
}