黑马程序员技术交流社区

标题: 一个功能写一个方法,还是一道题写一个方法好 [打印本页]

作者: yu244934256    时间: 2016-10-8 00:59
标题: 一个功能写一个方法,还是一道题写一个方法好
复制指定目录下指定后缀名的文件并修改文件名称
需求:将D:\aaa下的所有.txt文件复制到E:\aaa_copy,并且将.txt文件,重命名为.java
1.定义void copyFileAndRename(File srcFile, File destFile)静态方法,方法内要求:
如果目标目录不存在需要创建目标目录
完成将源目录中的文件复制到目标目录下,并将后缀名修改为.java
每复制完并更改后缀之后提示哪个文件复制完毕
2.在main方法中定义 源目录和目标目录,调用copyFileAndRename方法,复制完在控制台提示复制完毕

[AppleScript] 纯文本查看 复制代码
        public static void main(String[] args) throws IOException {
               
                File src=getDir("D:\\System Volume Information");
                File desc=getDir("D:\\aaa_copy");
                if(src.equals(desc)){
                        System.out.println("目标文件夹是源文件夹的子文件夹");
                }else{
                        copyFile(src,desc);
                        }
                fileReName(desc,".java");//只对同一个目录下文件重命名
                }
       
        public static File getDir(String filePath){
                File dir=new File(filePath);
                while(true){
                        if(!dir.exists()){
//                                System.out.println("文件路径不存在");
                                dir.mkdirs();
                        }else if(!dir.isDirectory()){
                                System.out.println("不是文件路径");
                        }else{
                                return dir;
                        }
                }
        }
        public static void copyFile(File srcFile, File destFile) throws IOException{
                //目录是系统文件就会报空
                File[] subFiles=srcFile.listFiles();
                for(File subFile:subFiles){
                        if(subFile.isFile()&&subFile.getName().endsWith(".txt")){
                                BufferedInputStream bis=new BufferedInputStream(new FileInputStream(subFile));
                                BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(new File(destFile+"\\",subFile.getName())));
                                int len=0;
                                while((len=bis.read())!=-1){
                                        bos.write(len);
                                }
                                bis.close();
                                bos.close();
                        }
                        else{
                                if(subFile.isDirectory())
                                copyFile(subFile,destFile);
                        }
                }
        }
       
        public static void fileReName(File srcFile,String fileSuffix){
                File[] file=srcFile.listFiles();
                for(File f:file){
                        if(f.isFile()&&f.getName().endsWith(".txt")){
                                String srcFileName=f.getName().substring(0,f.getName().lastIndexOf("."));
                                f.renameTo(new File(srcFile+"\\"+srcFileName+fileSuffix));
                        }
                }
                System.out.println("重命名"+file.length+"个文件");
        }





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