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

Java使用缓冲流实现文件的copy

程序员文章站 2022-05-04 11:57:01
缓冲流实现文件的copy,可以对图片,视频,zip,rar等文件进行操作 package com.io.buffered; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io. ......
缓冲流实现文件的copy,可以对图片,视频,zip,rar等文件进行操作
package com.io.buffered;

import java.io.bufferedinputstream;
import java.io.bufferedoutputstream;
import java.io.fileinputstream;
import java.io.fileoutputstream;
import java.io.ioexception;

import org.junit.test;

/**
 * 使用缓冲流实现文件的copy
 */
public class bufferedstreamfile {
    // 非文本文件放copy
    @test
    public void copyfiletest() {
        // 记录下时间
        long start = system.currenttimemillis();
        string src = "c:\\users\\administrator\\desktop\\1.png";
        string dest = "c:\\users\\administrator\\desktop\\2.png";
        copyfile(src, dest);
        // 结束时间
        long end = system.currenttimemillis();
        system.out.println("耗时:" + (end - start));
    }

    public static void copyfile(string src, string dest) {
        // 3、创bufferedinputstream 包装对应的节点流,用于提高效率
        bufferedinputstream bis = null;
        // 4、创建bufferedoutputstream 包装对应的节点流,用于提高效率
        bufferedoutputstream bos = null;
        try {
            // 1、创建fileinputstream 
            fileinputstream fis = new fileinputstream(src);
            // 2、创建fileoutputstream 
            fileoutputstream fos = new fileoutputstream(dest);

            bis = new bufferedinputstream(fis);
            bos = new bufferedoutputstream(fos);
            // 5、读取对应的文件内容
            byte[] b = new byte[1024];
            int len = 0;
            while ((len = bis.read(b)) != -1) {
                // 6将读取内容写到目标地点
                bos.write(b, 0, len);
            }
            // bos.flush();// 强制情况缓冲区【防止数据的丢失,一般情况不要用加】
        } catch (ioexception e) {
            e.printstacktrace();
        }
        // 7、关闭流
        if (bos != null) {
            try {
                bos.close();
            } catch (ioexception e) {
                e.printstacktrace();
            }
        }
        if (bis != null) {
            try {
                bis.close();
            } catch (ioexception e) {
                e.printstacktrace();
            }
        }

    }
}