黑马程序员技术交流社区

标题: 入学交流,有大虾会这道题的吗 [打印本页]

作者: Jeffery    时间: 2015-8-26 00:14
标题: 入学交流,有大虾会这道题的吗
编写一个程序,把指定目录下的所有的带.java文件都拷贝到另一个目录中,拷贝成功后,把后缀名是.java的改成.txt
作者: sven556677    时间: 2015-8-26 08:15
必须要拷贝成功才能改后缀名吗?拷贝的时候改了不是更方便。
作者: ithemazl    时间: 2015-8-26 08:30
这个题目还是比较简单的
作者: ithemazl    时间: 2015-8-26 08:32
import java.io.*;
import java.util.ArrayList;
import java.util.List;


public class Demo {
        public static void main(String[] args) throws Exception {
                ArrayList<String> list = new ArrayList<String>();// 定义集合存储Java文件的名字

                File src = new File("D:\\test\\java"); // 源文件路径
                File des = new File("D:\\test\\txt"); // 目的文件路径
                if (!des.exists()) // 判断目的文件是否存在,不存在就创建
                        des.mkdirs();

                fileTolist(src, list); // 将源文件中的Java文件的名字存入到集合中
                for (String fileName : list) { // 高级for循环遍历集合中Java文件的名字
                        writeTofile(src, des, fileName); // 将源文件中的Java文件存入到目的文件夹中
                }
        }

        // 将源文件中的Java文件的名字存入到集合中
        public static void fileTolist(File file, List<String> list) {
                File[] files = file.listFiles(); // 获取源文件夹中的文件

                for (File f : files) { // 遍历文件并将文件的Java文件的名字存入到集合中
                        list.add(f.getName());
                }
        }

        // 将源文件中的Java文件存入到目的文件夹中
        public static void writeTofile(File src, File des, String fileName)
                        throws Exception {

                BufferedReader bfr = new BufferedReader(new FileReader(new File(src,
                                fileName)));
                BufferedWriter bfw = new BufferedWriter(new FileWriter(new File(des,
                                fileName.replace(".java", ".txt"))));

                String line = null;
                while ((line = bfr.readLine()) != null) {
                        bfw.write(line);
                        bfw.newLine();
                        bfw.flush();
                }

                bfw.close();
                bfr.close();
        }
}

作者: chensheng06    时间: 2015-8-26 08:33
sven556677 发表于 2015-8-26 08:15
必须要拷贝成功才能改后缀名吗?拷贝的时候改了不是更方便。

是啊 我也是这么想的  
作者: 金逗逗    时间: 2015-8-26 16:25
  1. import java.io.*;

  2. public class CopyFile {

  3.         /**把指定目录下的所有的带.java文件都拷贝到另一个目录中,拷贝成功后,把后缀名是.java的改成.txt
  4.          * @param args
  5.          */
  6.         public static void main(String[] args)throws IOException {
  7.                 File oldFile=new File("E:\\javatest");
  8.                 File newFile=new File("D:\\");
  9.                 copyFile(oldFile,newFile);
  10.         }
  11.         public static void copyFile(File oldFile,File newFile)throws IOException{
  12.                 //新的目录,加上旧的文件名.就成了一个新的文件
  13.                 File file=new File(newFile.getPath()+"\\"+oldFile.getName());
  14.                 if(!(file.exists()))
  15.                         file.mkdir();//这个新文件一定是不存在的,所以一定要创建出来。
  16.                 File[] files=oldFile.listFiles();
  17.                 for(File name:files){
  18.                         if(name.isDirectory())//是路径的递归进去再遍历
  19.                                 copyFile(name,file);
  20.                         else{
  21.                                 if(name.getName().endsWith(".java")){//查找.java文件
  22.                                         FileInputStream fis=new FileInputStream(name);
  23.                                         FileOutputStream fos=new FileOutputStream(file.getPath()+"\\"+name.getName().replace(".java", ".txt"));
  24.                                         byte[] buf=new byte[1024];
  25.                                         int len=0;
  26.                                         while((len=fis.read(buf))!=-1){
  27.                                                 fos.write(buf, 0, len);
  28.                                         }
  29.                                         System.out.println(name.getName()+"上传成功");
  30.                                         fis.close();
  31.                                         fos.close();
  32.                                 }
  33.                         }
  34.                 }
  35.         }

  36. }
复制代码





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