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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. import java.io.*;
  2. import java.util.ArrayList;

  3. /**
  4. * 编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt
  5. */


  6. public class Test9
  7. {
  8.         public static void main(String[] args)
  9.         {
  10.                 File target=new File("E:\\java\\exam");
  11.                 File txt=new File("E:\\java\\exam\\txt");
  12.                
  13.                 dirJava(target);
  14.                
  15.                 for(File f:al)
  16.                 {
  17.                         String name=txt.toString()+"\\"+f.getName();//获取输出的文件名字
  18.                         name=name.replace(".java", ".txt");//把java换成txt
  19.                        
  20.                         java2txt(f,name);//copy .java文件
  21.                         System.out.println(name);
  22.                 }
  23.                
  24.         }
  25.        
  26.         static ArrayList<File> al=new ArrayList<File>();//文件集合
  27.        
  28.         public static void java2txt(File java,String txt)
  29.         {       
  30.                 BufferedReader bufr=null;
  31.                 BufferedWriter bufw=null;
  32.                 try
  33.                 {
  34.                         bufr=new BufferedReader(new FileReader(java));
  35.                         bufw=new BufferedWriter(new FileWriter(txt));
  36.                        
  37.                         String line=null;
  38.                        
  39.                         while((line=bufr.readLine())!=null)
  40.                         {
  41.                                 bufw.write(line);
  42.                                 bufw.newLine();
  43.                                 bufw.flush();
  44.                         }       
  45.                 }
  46.                 catch (IOException e)
  47.                 {
  48.                         throw new RuntimeException("copy失败");
  49.                 }
  50.                 finally
  51.                 {
  52.                         if(bufr!=null)
  53.                         {
  54.                                 try
  55.                                 {
  56.                                         bufr.close();
  57.                                 }
  58.                                 catch(IOException e1)
  59.                                 {
  60.                                         throw new RuntimeException("读取流失败");
  61.                                 }
  62.                         }
  63.                         if(bufw!=null)
  64.                         {
  65.                                 try
  66.                                 {
  67.                                         bufw.close();
  68.                                 }
  69.                                 catch(IOException e2)
  70.                                 {
  71.                                         throw new RuntimeException("写入流失败");
  72.                                 }
  73.                         }
  74.                 }

  75.         }
  76.        
  77.         public static void dirJava(File file)
  78.         {
  79. //                System.out.println(file);
  80.                
  81.                 File[] files=file.listFiles();//获取目录下所有文件
  82.                
  83.                 for(File f:files)
  84.                 {
  85.                         if(f.isDirectory())                //递归,如果是目录重新调用函数
  86.                                 dirJava(f);
  87.                         else
  88.                         {
  89.                                 if(f.toString().endsWith(".java"))
  90.                                         al.add(f);
  91. //                                System.out.println(f);
  92.                         }
  93.                 }
  94.                

  95.         }
  96. }
复制代码


之前基础测试做的题。我总觉的写的很别扭。
有没有好的写法分享下

1 个回复

倒序浏览
学习一下 谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马