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

步骤:

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

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

posted @ 2012-08-05 19:05  一瓶珍情  阅读(7224)  评论(0编辑  收藏  举报