1hutool实战:IoUtil 流操作工具类(copy拷贝操作)

1hutool实战:IoUtil 流操作工具类(copy拷贝操作)

用途:IO工具类(copy拷贝操作)

使用场景

IO工具类只是辅助流的读写,并不负责关闭流。原因是流可能被多次读写,读写关闭后容易造成问题。

(copy拷贝操作)

(copy拷贝操作)

(copy拷贝操作)

项目引用

此博文的依据:hutool-5.6.5版本源码1hutool实战:IoUtil 流操作工具类(copy拷贝操作)1hutool实战:IoUtil 流操作工具类(copy拷贝操作)1hutool实战:IoUtil 流操作工具类(copy拷贝操作)1hutool实战:IoUtil 流操作工具类(copy拷贝操作)1hutool实战:IoUtil 流操作工具类(copy拷贝操作)

public class StreamProgressObj implements StreamProgress {
    @Override
    public void start() {
        System.out.println("copy操作进度开始");
    }

    @Override
    public void progress(long progressSize) {
        System.out.println("当前copy操作进度:"+progressSize);
    }

    @Override
    public void finish() {
        System.out.println("copy操作进度结束");
    }
}

public class IoUtilTest {
    @Test
    public void copyTest3(){
        //事先创建源文件,目标文件可以不用创建
        File src = new File("C:\\Users\\Administrator\\Desktop\\xuzhu/copyTest1.txt") ;
        File dest = new File("C:\\Users\\Administrator\\Desktop\\xuzhu/toCopyTest1.txt") ;
        FileWriter fw = null;
        FileReader fr = null;
        try {
            //创建流
            fw = new FileWriter(dest);
            fr = new FileReader(src);
            StreamProgressObj streamProgressObj = new StreamProgressObj();
            IoUtil.copy(fr,fw,1024,streamProgressObj);

        } catch (IOException e) {
            //抛出一个运行时异常(直接停止掉程序)
            throw new RuntimeException("运行时异常",e);
        } finally {
            try {
                //如果是空的 说明流创建失败 失败了不需要关闭
                if (fw != null) {
                    fw.close();
                }
            } catch (Exception e) {
                //关闭资源失败 停止程序
                throw new RuntimeException("关闭资源失败");
            }finally {
                try {
                    if (fr != null) {
                        fr.close();
                    }
                } catch (Exception e) {
                    throw new RuntimeException("关闭资源失败");
                }
            }
        }
    }
}

1hutool实战:IoUtil 流操作工具类(copy拷贝操作)1hutool实战:IoUtil 流操作工具类(copy拷贝操作)

方法明细

方法名称:cn.hutool.core.io.IoUtil.copy(java.io.InputStream, java.io.OutputStream, int)

方法描述

拷贝流,拷贝后不关闭流

支持版本及以上

参数描述:1hutool实战:IoUtil 流操作工具类(copy拷贝操作)1hutool实战:IoUtil 流操作工具类(copy拷贝操作)1hutool实战:IoUtil 流操作工具类(copy拷贝操作)1hutool实战:IoUtil 流操作工具类(copy拷贝操作)1hutool实战:IoUtil 流操作工具类(copy拷贝操作)

上一篇:Windows Server 2008 R2下部署OCS 2007 R2存档&监控服务器


下一篇:美国计算机安全应急响应组(CERT):需警惕朝鲜黑客组织“隐藏眼镜蛇”