1、文件复制(模拟)简介:
- 1.1、使用字节流的输入&输出模拟文件复制:
- 1.1.1)、先从磁盘空间读取文件到内存,
- 1.1.2)、然后将读取到的字节流数据写出到指定磁盘文件中(使用文件字节流复制文件可以复制任意类型的文件)
- 第一种实现方式是每读取一个字节数据就写一个字节数据 --效率较慢
- 第二种方式是读取多个字节数据然后将这读取到的多个字节数据写到磁盘中 – 较上一种方式效率高
- 资源释放:先开始的后结束,即先释放字节输出流操作(写操作),再释放字节输入流操作(读操作)
2、代码实现:
public class FileCopyDemo {
public static void main(String[] args) throws IOException {
//读取文件MyBatis01\\fileAppend.txt,复制到MyBatis01\\A\\fileAppend.txt
//文件字节流输入
FileInputStream fis = new FileInputStream("MyBatis01\\fileAppend.txt");
//文件字节流输出
FileOutputStream fos = new FileOutputStream("MyBatis01\\A\\fileAppend.txt");
//第一种实现方式:读取一个字节写入一个字节
int len = 0; //读取和写入的有效字节长度
while((len = fis.read()) != -1){
fos.write(len); //写入(文件输出流操作)的长度
}
//第二种实现方式:读取一定长度字节数据,写入一定长度字节数据
byte[] bytes = new byte[1024]; //存储读取到的字节数据的长度
int l = 0; //读取字节数据的有效长度
while((l = fis.read(bytes)) != -1){
fos.write(bytes,0,l);
}
//释放资源
fos.close(); //先释放写操作
fis.close(); //后释放读操作
}
}