zoukankan      html  css  js  c++  java
  • 从键盘接收两个文件夹路径,把其中一个文件夹(包含内容),拷贝到另一个文件夹中

    package cn.it.text;
    
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.util.Scanner;
    
    /*
     * 1.从键盘接收两个文件夹路径,把其中一个文件夹(包含内容)
     *    拷贝到另一个文件夹中
     */
    public class Test1 {
        public static void main(String[] args) throws Exception {
            Scanner scan = new Scanner(System.in);
            String pathname1 = "";
            String pathname2 = "";
            while (true) {
    
                // 获取文件夹路径
    
                System.out.println("请输入文件夹路径1:");
                pathname1 = scan.nextLine();
                System.out.println("请输入文件夹路径2:");
                pathname2 = scan.nextLine();
    
                // 创建两个文件对象
                File file1 = new File(pathname1);
                File file2 = new File(pathname2);
    
                // 判断文件是否存在
                if (!(file1.exists() && file2.exists())) {
                    System.out.println("你输入的文件夹路径错误!");
                    // 跳出本层循环,重新输入
                    continue;
                }
                // 判断是否是文件夹
                if (!(file1.isDirectory() && file2.isDirectory())) {
                    System.out.println("你输入的不是文件夹路径!");
                    continue;
                }
    
                // 创建输入输出流对象
                fuzhi(file1, file2);
                break;
    
            }
    
        }
    
        public static void fuzhi(File file1, File file2) throws Exception {
            //在目标文件中创建原文件夹
            //File类的构造方法File(File file,String name)
            File newFile=new File(file2,file1.getName());
            //创建文件夹,文件夹的路径在构造方法中给出,如果存在文件夹,就不再创建
            //如果不存在,就创建文件夹
            newFile.mkdir();
            
            //获取源文件夹中的文件目录
            File[] fileArr=file1.listFiles();
            
            //遍历数组
            for(File f:fileArr) {
                //如果是文件夹,就递归调用
                if (f.isDirectory()) {
                    fuzhi(f, newFile);
                }else {
                    //如果是文件,就使用IO流
                    BufferedInputStream in=new BufferedInputStream(new FileInputStream(f));
                    BufferedOutputStream out=new BufferedOutputStream(new FileOutputStream(new File(newFile,f.getName())));
                    int b;
                    while((b=in.read())!=-1) {
                        out.write(b);
                    }
                    in.close();
                    out.close();
                }
            }
                
        }
    
    }
  • 相关阅读:
    Maximum sum-动态规划
    Ubuntu14下Hadoop开发<1> 基础环境安装
    POJ 3252 Round Numbers 数学题解
    ubuntu环境 rake aborted!
    oracle decode函数用法
    Android多线程研究(1)——线程基础及源码剖析
    2014冬去春来
    Android中的动画详解系列【4】——Activity之间切换动画
    JavaScript你所不知道的困惑(3)
    研发人员技术定级的一些思考
  • 原文地址:https://www.cnblogs.com/zhilili/p/10699897.html
Copyright © 2011-2022 走看看