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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王震阳老师   /  2014-4-30 10:34  /  46987 人查看  /  602 人回复  /   4 人收藏 转载请遵从CC协议 禁止商业使用本文

基础都能领?
回复 使用道具 举报
快点回复!
回复 使用道具 举报
进来看看!
回复 使用道具 举报

答案呈上,新人求罩

FileCopyTest.rar

2.27 KB, 阅读权限: 100, 下载次数: 1

评分

参与人数 1技术分 +5 收起 理由
王震阳老师 + 5 继续努力

查看全部评分

回复 使用道具 举报
111111111111111
回复 使用道具 举报
回复看题
回复 使用道具 举报
交作业了

LX3.zip

1.31 KB, 阅读权限: 100, 下载次数: 1

评分

参与人数 1技术分 +5 收起 理由
王震阳老师 + 5 很给力!

查看全部评分

回复 使用道具 举报
  1. package cn.itcast.test;

  2. import java.io.*;

  3. public class Copy {
  4.        
  5.         public static void main(String[] args)throws Exception
  6.         {       
  7.                 /*
  8.                  * ①首先你要输入一个c盘的文件夹,一直到你输入正确为止
  9.                  * */
  10.                 System.out.println("请输入C盘的一个文件夹目录(悠着点,文件夹太大时间长):");
  11.                 BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
  12.                 String olddir=null;
  13.                 File cfile=null;
  14.                 while((olddir=bufr.readLine())!=null)
  15.                 {
  16.                        
  17.                         cfile=new File(olddir);
  18.                        
  19.                        
  20.                         if(cfile.isDirectory())
  21.                         {
  22.                                 File dfile=changeDir(cfile);
  23.                                 dfile.mkdir();
  24.                                 break;       
  25.                         }
  26.                         else
  27.                                 System.out.println("该路径不存在,请重新输入:");
  28.                 }
  29.                 /*
  30.                  * ②调用copy函数,将C盘文件夹复制到D盘
  31.                  * */
  32.                 copy(cfile);
  33.         }
  34.        
  35.         public static void copy(File dir)throws Exception
  36.         {
  37.                 File[] files=dir.listFiles();
  38.                
  39.                 for(int i=0;i<files.length;i++)
  40.                 {
  41.                         if(files[i].isDirectory())
  42.                         {
  43.                                 //在D盘创建文件夹
  44.                                 File newfile=changeDir(files[i]);
  45.                                 newfile.mkdir();
  46.                                 copy(files[i]);
  47.                                
  48.                         }else{
  49.                                
  50.                                 //把文件复制到D盘相应的路径下
  51.                                 File newfile=changeDir(files[i]);
  52.                                
  53.                                 BufferedReader bufIn=
  54.                                         new BufferedReader(new InputStreamReader(new FileInputStream(files[i])));
  55.                                 PrintWriter pw=
  56.                                         new PrintWriter(new FileOutputStream(newfile));
  57.                                
  58.                                 String line=null;
  59.                                
  60.                                 while((line=bufIn.readLine())!=null)
  61.                                 {
  62.                                         pw.println(line);
  63.                                 }
  64.                                 bufIn.close();
  65.                                 pw.close();
  66.                                
  67.                         }
  68.                 }
  69.         }
  70.         //此函数负责将C盘的路径转换成D盘相应的路径
  71.         public static File changeDir(File oldfile)throws Exception
  72.         {
  73.                 String olddir=oldfile.getCanonicalPath();
  74.                
  75.                 char[] array=olddir.toCharArray();
  76.                
  77.                 array[0]='D';
  78.                
  79.                 String newdir=new String(array);
  80.                 File newfile=new File(newdir);
  81.                
  82.                 return newfile;
  83.         }
  84. }
复制代码
请大家多多指点

评分

参与人数 1技术分 +5 收起 理由
王震阳老师 + 5 很给力!

查看全部评分

回复 使用道具 举报
本帖最后由 满兴旺 于 2014-5-4 18:14 编辑
王震阳 发表于 2014-4-30 10:38
还在学习基础的童鞋们,快来领题吧
  1. package cn.itcast.test;

  2. import java.io.*;

  3. public class Copy {
  4.         
  5.         public static void main(String[] args)throws Exception
  6.         {        
  7.                 /*
  8.                  * ①首先你要输入一个c盘的文件夹,一直到你输入正确为止
  9.                  * */
  10.                 System.out.println("请输入C盘的一个文件夹目录(悠着点,文件夹太大时间长):");
  11.                 BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
  12.                 String olddir=null;
  13.                 File cfile=null;
  14.                 while((olddir=bufr.readLine())!=null)
  15.                 {
  16.                         
  17.                         cfile=new File(olddir);
  18.                         
  19.                         
  20.                         if(cfile.isDirectory())
  21.                         {
  22.                                 File dfile=changeDir(cfile);
  23.                                 dfile.mkdir();
  24.                                 break;        
  25.                         }
  26.                         else
  27.                                 System.out.println("该路径不存在,请重新输入:");
  28.                 }
  29.                 /*
  30.                  * ②调用copy函数,将C盘文件夹复制到D盘
  31.                  * */
  32.                 copy(cfile);
  33.         }
  34.         
  35.         public static void copy(File dir)throws Exception
  36.         {
  37.                 File[] files=dir.listFiles();
  38.                
  39.                 for(int i=0;i<files.length;i++)
  40.                 {
  41.                         if(files[i].isDirectory())
  42.                         {
  43.                                 //在D盘创建文件夹
  44.                                 File newfile=changeDir(files[i]);
  45.                                 newfile.mkdir();
  46.                                 copy(files[i]);
  47.                                 
  48.                         }else{
  49.                                 
  50.                                 //把文件复制到D盘相应的路径下
  51.                                 File newfile=changeDir(files[i]);
  52.                                 
  53.                                 BufferedReader bufIn=
  54.                                         new BufferedReader(new InputStreamReader(new FileInputStream(files[i])));
  55.                                 PrintWriter pw=
  56.                                         new PrintWriter(new FileOutputStream(newfile));
  57.                                 
  58.                                 String line=null;
  59.                                 
  60.                                 while((line=bufIn.readLine())!=null)
  61.                                 {
  62.                                         pw.println(line);
  63.                                 }
  64.                                 bufIn.close();
  65.                                 pw.close();
  66.                                 
  67.                         }
  68.                 }
  69.         }
  70.         //此函数负责将C盘的路径转换成D盘相应的路径
  71.         public static File changeDir(File oldfile)throws Exception
  72.         {
  73.                 String olddir=oldfile.getCanonicalPath();
  74.                
  75.                 char[] array=olddir.toCharArray();
  76.                
  77.                 array[0]='D';
  78.                
  79.                 String newdir=new String(array);
  80.                 File newfile=new File(newdir);
  81.                
  82.                 return newfile;
  83.         }

复制代码

我知道楼主很不容易,我们在这答题挣分的也很不容易。。。相互谅解吧
回复 使用道具 举报
领取中。。
回复 使用道具 举报
瞅瞅   ~~
回复 使用道具 举报
看那看看看
回复 使用道具 举报
看看看一下
回复 使用道具 举报
在哪里在哪里 我还是0分呢
回复 使用道具 举报
看看看看看看看看看看
回复 使用道具 举报
看看是什么题目
回复 使用道具 举报

你的答案执行起来是正确的,但是方法不是很好,如果是一个大型的文件系统,将所有的文件名都放在集合中是很耗费内存的事情,为何不迭代一个文件夹复制一个文件夹呢?
回复 使用道具 举报
黄晓鑫 发表于 2014-4-30 14:12
http://blog.csdn.net/u012840558/article/details/22586555
/*
* 需求:(把D盘文件复制到C盘)

代码怎么不用专门的代码标签包含起来,那样会更好看一点儿,代码最好隐藏或上传为附件,这样别人就看不到了。
回复 使用道具 举报

你的代码是有问题的,不能完全符合题意,如果我的文件夹为:c/d/e/f/g,但是每个文件夹中都没有文件,那么你的代码已经不好使了,而按照题意,你必须将文件夹目录也实现拷贝功能的,因此只给你1个技术分,希望你能改进。
回复 使用道具 举报
Teemo_Mann 发表于 2014-4-30 15:00
我的代码如下,已测试成功,谢谢

以后再提交类似的代码答案,应该将代码隐藏起来,或者作为附件上传,这样别人就看不到你的代码了,当然我还是可以看到的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马