zoukankan      html  css  js  c++  java
  • 复制文件的异常处理

    示例代码

    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();
    }*/
    }
    
  • 相关阅读:
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Storm 1.1.0 中文文档 | ApacheCN
    mysql生成随机字符串
    nginx的5个特点
    虚拟机网络配置
    (mapreduce题) 找出有共同好友的 users --好好玩
    activemq-5.15.10 启动不了
    mysql导出 Excel数据字典(全)
    WebStorm 免注册码
  • 原文地址:https://www.cnblogs.com/lsswudi/p/11429818.html
Copyright © 2011-2022 走看看