文件复制的原理
文件的复制粘贴的过程其实就是读取和写入的过程。
以下示例是将文件数据读取到字节数组当中,然后将字节数组写入到指定的文件。每读取一次随即做写入的操作。
以下变量的解释:
变量 | 描述 |
---|---|
int n | 用于存放每次读取数据的字节大小,同时将read()方法会返回的返回值(本次读取的字节大小)赋值给变量n |
byte[] b =new byte[1024] | 每次读取读取1024个字节大小存储到字节数组b当中 |
package demo;
import java.io.*;
public class CopyFile {
public static void main(String[] args) {
File file = new File("picture.jpg");
File cpFile = new File("copyPicture.jpg");
try {
FileInputStream fis = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream(cpFile);
byte[] b = new byte[1024];
int n = 0;
while ((n = fis.read(b))!= -1){
System.out.println(n);
fos.write(b,0,n);
}
fis.close();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}
}
}
注意!write()的写法,fos.write(b,0,n);此写法可以保证最后一次写入的时候能够写入实际读取的字节大小,否则复制出来的文件大小和源文件大小不一致。