FileInputStream和FileOutputStream实现文件复制
在电脑中实现文件的复制是很简单的,cv操作即可。
但是如何使用Java代码实现一个文件的复制呢?这就需要借助内存了。
有了这张图我们就能很清晰的知道我们需要如何操作了。
创建一个FileInputStream对象
读取源文件数据
创建一个FileOutputStream对象
创建一个目标文件,并写入数据(别忘了flush())
采用一边读一边写的方式:
package com.dh.io;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileCopy {
public static void main(String[] args) {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream("C:\\Users\\DH\\Desktop\\test.txt");
fos = new FileOutputStream("D:\\test.txt");
byte[] bytes = new byte[1024*1024];
int readCount = 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 {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(fis != null){
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
注意事项:在finally中,两个流的异常捕捉最好分开,如果放在一起的话,其中一个发生异常就会跳出{},可能会导致另外一个流无法关闭。