A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

需求:
从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中
------------------------------------------------------------------------------------------
擦,需求就这一行,折腾了我一天
。。。。
  1. package com.heima.test;

  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.FileOutputStream;
  7. import java.io.IOException;
  8. import java.util.Scanner;

  9. public class Test8 {

  10.         /**
  11.          * 3,从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中
  12.          *
  13.          * 分析:
  14.          * 1.针对键盘录入的路径进行判断,正确的话,返回
  15.          * 2.读取输入的路径文件,
  16.          * 3,将读取的文件写出另一个路径下
  17.          * @throws IOException
  18.          */
  19.         public static void main(String[] args) throws IOException {
  20.                
  21.                 File f1 = null;
  22.                 File f2 = null;
  23.                 f1 = getFile();
  24.                 f2 = getFile2();
  25.                 File[] files = f1.listFiles();
  26.                 method(files,f2);
  27.                 System.out.println("复制好了");
  28.                
  29.         }
  30.        
  31.         //获取正确的键盘录入的文件夹路径
  32.         public static File getFile(){
  33.                 System.out.println("请键盘输入一个文件夹路径");
  34.                 while(true){
  35.                         Scanner sc = new Scanner(System.in);
  36.                         String s = sc.nextLine();
  37.                         File f = new File(s);
  38.                         if((!f.exists()) || f.isFile()){
  39.                                 System.out.println("输入错误,这不是文件夹路径唉```");
  40.                         }else if(f.isDirectory()){
  41.                                 return f;
  42.                         }
  43.                 }
  44.         }
  45.        
  46.         //获取正确的输出copy路径
  47.         public static File getFile2(){
  48.                 System.out.println("请键盘输入一个要存入的文件夹路径");
  49.                
  50.                         Scanner sc = new Scanner(System.in);
  51.                         String s = sc.nextLine();
  52.                         File f = new File(s);
  53.                         if(!f.exists()){
  54.                                 f.mkdir();
  55.                         }
  56.                         return f;
  57.                        
  58.                
  59.         }
  60.        
  61.         //对录入的文件夹路径进行操作
  62.         public static void method(File[] files,File f2) throws IOException{
  63.                 //创建字节输入流.输出流
  64.                
  65.                 for (int i = 0; i < files.length; i++) {
  66.                        
  67.                         if(files[i].isFile()){
  68.                                 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(files[i]));
  69.                                 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(f2.getPath()
  70.                                                 +  File.separator + files[i].getName()));
  71.                                 int b;
  72.                                 while((b = bis.read())!=-1){
  73.                                         bos.write(b);
  74.                                 }       
  75.                                 bos.close();
  76.                                 bis.close();
  77.                         }
  78.                         if(files[i].isDirectory()){
  79.                                 File f3 = new File(f2.getPath()+File.separator+files[i].getName());
  80.                                 f3.mkdir();
  81.                                 method(files[i].listFiles(),f3);
  82.                         }
  83.                        
  84.                 }
  85.         }
  86.        
  87.        
  88. }
复制代码

评分

参与人数 2黑马币 +3 收起 理由
SLJ_920808 + 2 看着很厉害的样子
pgymmc + 1 赞一个!

查看全部评分

3 个回复

正序浏览
亲友团们还挺给力  ,感谢鼓励,一首《杀猪刀》送给你们。。。。。哈哈
回复 使用道具 举报

阿西吧  少爷见笑了不是。。。。
回复 使用道具 举报
6666666得飞起
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马