• IO流 文件夹的拷贝(字节流)


    文件夹拷贝

    copy文件夹(CopyDir.java)

    package cn.Reader;
    
    import java.io.File;
    import java.io.IOException;
    
    /*
     * 文件夹的拷贝
     * 1.文件复制  Copyfile
     * 2.文件夹创建 mkdirs()
     * 3.递归查找子孙级
     */
    public class CopyDir {
        public static void main(String [] args) {
            String srcPath="C:/Users/Administrator/Desktop/sun/JAVA  project";
            //目标目录
            String destPath="C:/Users/Administrator/Desktop/sun/haha";
            CopyDir(srcPath,destPath);
            
        }
        /*
         * 拷贝文件夹
         * src 源路径
         * dest 目标路径
         */
        public static void CopyDir(String srcPath,String destPath) {
            File src=new File(srcPath);
            File dest=new File(destPath);
            CopyDir(src,dest);
            
        }
        
        
        
        
        //拷贝文件夹细节
        public static void CopyDir(File src,File dest) {
            if(src.isFile()) {  //文件
                try {
                    FileUtil.CopyFiles(src, dest);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
            }
            else if(src.isDirectory()) {  //文件夹
                //确保目标文件夹存在
                 dest.mkdirs();
                 //获取下一级的目录或者文件
                 for(File sub:src.listFiles()) {                              //递归遍历子孙级
                     CopyDir(sub,new File(dest,sub.getName()));
                 }
            }
        }
    
    }

    文件夹及文件拷贝封装(FileUtil.java)

    package cn.Reader;
    /*
     * 文件操作
     * 1.文件拷贝
     * 2.文件夹拷贝
     */
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    
    public class FileUtil {
        /*
         * 拷贝文件夹
         * src 源路径
         * dest 目标路径
         */
        public static void CopyDir(String srcPath,String destPath) {
            File src=new File(srcPath);
            File dest=new File(destPath);
            CopyDir(src,dest);
            
        }
        
        
        
        
        //拷贝文件夹细节
        public static void CopyDir(File src,File dest) {
            if(src.isFile()) {  //文件
                try {
                    FileUtil.CopyFiles(src, dest);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
            }
            else if(src.isDirectory()) {  //文件夹
                //确保目标文件夹存在
                 dest.mkdirs();
                 //获取下一级的目录或者文件
                 for(File sub:src.listFiles()) {                              //递归遍历子孙级
                     CopyDir(sub,new File(dest,sub.getName()));
                 }
            }
        }
        public static void CopyFiles(String srcPath,String destPath ) throws IOException {
            CopyFiles(new File(srcPath),new File(srcPath));
        }
         
        //对该方法进行重载
        
        public static void CopyFiles(File  src,File dest ) throws IOException {
            if(!src.isFile()) {   //不是文件或者为null
                System.out.println("只能拷贝文件");
                throw new IOException("只能拷贝文件");
            }
    
            
            //2.选择流
            InputStream  is =new FileInputStream(src);
            OutputStream os=new FileOutputStream(dest);
            //3.文件拷贝 循环 读取+写出
            byte[] flush=new byte[1024];
            int len=0; 
            //读取
            while(-1!=(len=is.read(flush))){
                //写出
                os.write(flush, 0, len); 
            }
            os.flush();  //强制刷出
            //关闭两个流 
            os.close();  //后打开的先关闭
            is.close();
            
        }
        public static void main(String[] args) {
            File src=new File("C:/Users/Administrator/Pictures/Saved Pictures/a.jpg");
            File dest =new File("C:/Users/Administrator/Pictures/Saved Pictures/180.jpg");
            try {
                CopyFiles(src,dest);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
  • 相关阅读:
    Web前端浏览器兼容性问题及解决方案
    JS
    vue element-ui 重置样式问题
    学习的一些文章链接
    打开新世界的第一步:学习servlet
    java学习初体验之课后习题
    下载、安装jdk8(Windows下)并配置变量环境
    下载PhpStorm并进行激活
    WCF+NHibernate 序列化
    wcf 证书+ssl+自定义用户名密码
  • 原文地址:https://www.cnblogs.com/ssxblog/p/11227205.html
Copyright © 2020-2023  润新知