黑马程序员技术交流社区

标题: 目录复制问题 [打印本页]

作者: oxf974025918    时间: 2013-6-19 19:00
标题: 目录复制问题
编写一个程序,将d:\java 目录下的所有.java 文件复制到d:\jad 目录下,并将原来文件的扩展名从.java 改为.jad。
作者: mvplee    时间: 2013-6-19 21:14
坚定的说:这是道基础测试题!
作者: 王靖远    时间: 2013-6-19 21:18
本帖最后由 王靖远 于 2013-6-19 21:20 编辑

import java.io.*;
import java.util.*;
/*
* 需求:编写一个程序,将d:\java 目录下的所有.java 文件复制到d:\jad 目录下,并将原来文件的扩展名从.java 改为.jad。
*把毕老师的第二十天视频中的JavaFileList.java代码稍作修改就可以完成这个需求了。有看不懂的地方可以回帖再问
* */
public class MoveFile
{
        
        public static void fileToList(File dir,List<File> list)
        {
                File[] files = dir.listFiles();
                for(File file : files)
                {
                        if(file.isDirectory())
                                fileToList(file,list);
                        else
                        {
                                if(file.getName().endsWith(".java"))
                                        list.add(file);
                        }
                        
                }
        }
        public static void moveFile(File dir,List<File>list)
        {
                String path =null;
                File file = null;
                BufferedWriter bufw = null;
                BufferedReader bufr = null;
                for(File f :list)
                {
                        path = f.getPath();
                        path = path.replace("d:\\java", "d:\\jad");
                        System.out.println(path);
                        path = path.replace(".java",".jad");
                        System.out.println(path);
                        if(!dir.isDirectory())
                                dir.mkdir();
                        file = new File(path);
                        
                        try
                        {
                                bufw = new BufferedWriter(new FileWriter(file));
                                bufr = new BufferedReader(new FileReader(f));
                                String line = null;
                                while((line=bufr.readLine())!=null)
                                {
                                        bufw.write(line);
                                        bufw.newLine();
                                        bufw.flush();
                                }
                                
                        }
                        catch(IOException e)
                        {        
                                throw new RuntimeException("写入出错");
                        }
                        finally
                        {
                                try
                                {
                                        if(bufw!=null)
                                                bufw.close();
                                }
                                catch(IOException e)
                                {        
                                        throw new RuntimeException("输出流关闭失败");
                                }
                                try
                                {
                                        if(bufr!=null)
                                                bufr.close();
                                }
                                catch(IOException e)
                                {
                                        throw new RuntimeException("读取流关闭失败");
                                }
                        }
                }
               
}
        
        public static void main(String[] args)
        {
                File dir1 = new File("d:\\java");
                List<File>list = new ArrayList<File>();
                fileToList(dir1,list);
               
                File dir2 = new File("d:\\jad");
                moveFile(dir2,list);
               
        }
}

作者: oxf974025918    时间: 2013-6-19 22:33
王靖远 发表于 2013-6-19 21:18
import java.io.*;
import java.util.*;
/*

谢谢帅哥,但是如果文件放在子目录下的话会有异常,你再测试下。意思我都可以看懂。
作者: 王靖远    时间: 2013-6-19 22:42
oxf974025918 发表于 2013-6-19 22:33
谢谢帅哥,但是如果文件放在子目录下的话会有异常,你再测试下。意思我都可以看懂。 ...

你可以自己试着修改。主要我把一些路径写死了,所以会出异常,搞定不了的话我再试试
作者: 王靖远    时间: 2013-6-19 22:47
oxf974025918 发表于 2013-6-19 22:33
谢谢帅哥,但是如果文件放在子目录下的话会有异常,你再测试下。意思我都可以看懂。 ...

你说的放在子目录下是什么意思啊?
作者: oxf974025918    时间: 2013-6-19 22:54
.java文件比如我把文件放在java目录下的另一个文件下面如:d:\\java\\ja\\test,java再复制到d:\\jad下就会有异常。还有个问题是怎样设置这个问题为已解决?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2