复制文件的异常处理
Posted lsswudi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了复制文件的异常处理相关的知识,希望对你有一定的参考价值。
示例代码
package com.io.liushuaishuai; import java.io.*; public class copyFolderDemo01 public static void main(String[] args) throws IOException //创建数据源File对象,路径是c:\\\\java File srcfile = new File("c:\\\\java"); //创建目的地File对象,路径是c:\\\\F File destfile = new File("c:\\\\F"); //文件夹复制 copyFolder(srcfile, destfile); private static void copyFolder(File srcfile, File destfile) throws IOException if (srcfile.isDirectory()) String srcfileName = srcfile.getName(); File newFolder = new File(destfile, srcfileName); if (!newFolder.exists()) newFolder.mkdir(); File[] filearray = srcfile.listFiles(); for (File file : filearray) copyFolder(file, destfile); else copyFile(srcfile, new File(destfile, srcfile.getName())); // jdk7以后的改进方案 private static void copyFile(File srcfile, File destfile) try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcfile)); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destfile));) byte[] bys = new byte[1024]; int len; while ((len = bis.read(bys)) != -1) bos.write(bys, 0, len); bos.flush(); catch (IOException e) e.printStackTrace(); //try....catch finally /* private static void copyFile(File srcfile, File destfile) BufferedInputStream bis = null; BufferedOutputStream bos = null; try bis = new BufferedInputStream(new FileInputStream(srcfile)); bos = new BufferedOutputStream(new FileOutputStream(destfile)); byte[] bys = new byte[1024]; int len; while ((len = bis.read(bys)) != -1) bos.write(bys, 0, len); bos.flush(); catch (IOException e) e.printStackTrace(); finally if(bis!=null) try bis.close(); catch (IOException e) e.printStackTrace(); if(bos!=null) try bos.close(); catch (IOException e) e.printStackTrace(); */ /* private static void copyFile(File srcfile, File destfile) BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcfile)); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destfile)); byte[] bys = new byte[1024]; int len; while ((len = bis.read(bys)) != -1) bos.write(bys, 0, len); bos.flush(); bis.close(); bos.close(); */
以上是关于复制文件的异常处理的主要内容,如果未能解决你的问题,请参考以下文章
使用 Avro 文件批量复制到 Amazon Redshift 中的异常处理