用途:IO工具类(copy拷贝操作)
使用场景
IO工具类只是辅助流的读写,并不负责关闭流。原因是流可能被多次读写,读写关闭后容易造成问题。
(copy拷贝操作)
(copy拷贝操作)
(copy拷贝操作)
项目引用
此博文的依据:hutool-5.6.5版本源码
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("关闭资源失败"); } } } } }
方法明细
方法名称:cn.hutool.core.io.IoUtil.copy(java.io.InputStream, java.io.OutputStream, int)
方法描述
拷贝流,拷贝后不关闭流