步骤:
1.构造文件字节输入输出流
2.创建一个字节数组,用来指定每次复制的字节大小
3.输入流从源文件读取字节,输出流将字节写入文件
下面通过一段程序进行说明:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class JavaIO {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream(
"E:\\Download\\struts-2.3.1.2-all.zip");
FileOutputStream fos = new FileOutputStream("E:\\a.zip");
byte[] b = new byte[1024000];
int n;
while ((n = fis.read(b)) != -1) {
fos.write(b, 0, n);
}
fis.close();
fos.close();
}
}
fis.read(b)的作用是从源文件最多读取b.length字节的数据送给b数组,返回的是读入的字节总数。
本例中b.length的长度指定为1024000,当最后一次不足1024000,例如只剩下5000字节时,返回的就是5000,此时所有字节读取完毕。下一次读入时由于已到达文件末尾,返回-1。
fos.write(b, 0, n)意思是将byte数组从偏移量0开始的n个字节写入文件输出流。
程序结束后记得要关闭输入输出流。