Java输入输出之字节流拷贝文件

来源:互联网 发布:工具书知乎 编辑:程序博客网 时间:2024/04/29 14:41

步骤:

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个字节写入文件输出流。

程序结束后记得要关闭输入输出流。