zoukankan      html  css  js  c++  java
  • IO流实现文件及文件夹的复制

    TestCopyDocuments.java

    package com.sxt.parc;
    /*
     * 复制文件夹  包含文本 视频 音频 用字节流  
     */
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    
    public class TestCopyDocuments {
        public static void main(String[] args) throws Exception {
            copyDocuments("G:\source.txt","G:\dest.txt");
        }
    
        public static void copyDocuments(String SourcePath, String DestPath) throws Exception {
            //读入文件到程序
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream(SourcePath));
            //写入数据到文件
            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(DestPath));
            byte[] b = new byte[1024];
            int len = 0;
            while((len = bis.read(b)) != -1){
                bos.write(b, 0, len);
            }
            bis.close();
            bos.close();
            System.out.println("复制文件完成!");
        }
    }

    TestCopyFiles2.java

    package com.sxt.parc;
    /*
     * 文件夹以及文件的复制
     */
    import java.io.File;
    
    public class TestCopyFiles2 {
        public static void main(String[] args) throws Exception {
            CopyFiles("G:\source","G:\dest");
            System.out.println("*********复制完成**************");
        }
    
        private static void CopyFiles(String sourcePath, String destPath) throws Exception {
            //源路径
            File file = new File(sourcePath);
    //        String name = file.getName();
    //        System.out.println(name);
            //检查源路径是否正确
            if(!file.exists()){
                System.out.println("请检查您的源路径是否合法!");
            }
            
            //目标路径
            File file2 = new File(destPath);
            //如果目标文件夹不存在则创建
            if(!file2.exists()){
                file2.mkdir();//当前目录创建
            }
    
    //      //列出源文件夹的文件和文件夹列表准备复制
    //        String[] list = file.list();//String类型
    //        for(String doc: list){
    //            System.out.println(doc);
    //        }
            //列出源文件夹的文件和文件夹列表准备复制
            File[] listFiles = file.listFiles();
            for(File f :listFiles){
                System.out.println(f.getName());
                //如果是文件夹需要在目标文件夹下创建文件夹
                if(f.isDirectory()){
                    //关键步骤:递归
                    //System.out.println(f+"--------->"+destPath+"\"+f.getName());
                    CopyFiles(sourcePath+"\"+f.getName(),destPath+"\"+f.getName());
                }
                //如果不是文件夹直接复制    
                if(f.isFile()){
                    //关键步骤:递归
                    //System.out.println(f+"--------->"+destPath+"\"+f.getName());
                    TestCopyDocuments.copyDocuments(sourcePath+"\"+f.getName(),destPath+"\"+f.getName());
                }
            }
        }
    }
  • 相关阅读:
    MVC NonAction属性
    未将对象引用设置到对象的实例
    回调函数callback
    Json详解
    浅谈HTTP中Get与Post的区别
    JQuery $.ajax()方法详解
    C#中Const和Readonly的区别
    全面解释StringBuilder、StringBuffer和String的关系
    基本数据类型的包装类和随机数
    枚举类的使用
  • 原文地址:https://www.cnblogs.com/qingfengzhuimeng/p/6776445.html
Copyright © 2011-2022 走看看