欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

较简单的字节输入流输出流拷贝文件

程序员文章站 2022-03-02 12:50:24
...

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

/**
 * 较简单的字节输入流输出流拷贝文件
 *
 * @author silence
 */
public class Silence {
    /**
     * 需要被拷贝的文件地址 file可以对此文件做获取名字等操作,也可以直接把地址填到流里面
     * 输入流
     */
    private static final File FILEINPUT = new File("D:\\a.txt");
    /**
     * 输出流 拷贝文件的目的地  写出文件不存在,路径正确会自动创建文件
     * 如果不打开续写开关,每次写入文件会覆盖
     */
    private static final File FILEOUT = new File("D:\\b.txt");

    public static void main(String[] args) throws Exception {
        long start = System.currentTimeMillis();
        FileInputStream input = new FileInputStream(FILEINPUT);
        //如果第二个参数为true 则打开续写开关,否则,每次写入会覆盖
        FileOutputStream out = new FileOutputStream(FILEOUT, true);
        //每次循环读取到的内容  可增加读取速度 如果不用数组则每次读取1个字节
        byte[] arr = new byte[1024];
        //每次读取读取到的字节数量
        int length;
        while ((length = input.read(arr)) != -1) {
            //通过输出流写出到目的地, 从0开始写,写当前循环读到的最大值
            out.write(arr, 0, length);
            out.flush();
        }
        //关闭输入流
        input.close();
        //关闭输出流
        out.close();
        long end = System.currentTimeMillis();
        System.out.println(FILEINPUT.getName() + "  读取完成 耗时:" + (end - start) + "毫秒");
    }
}