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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

io
  1. /*
  2. 需求:将一个指定目录下的java文件的绝对路径,存储到一个文本文件中

  3. 分析:        1、对指定目录进行递归
  4.                 2、获取递归过程中所有的java文件的绝对路径
  5.                 3、将路径存入集合中
  6.                 4、将集合中的元素写入文档
  7. */
  8. import java.io.*;
  9. import java.util.*;
  10. class JavaFileList
  11. {
  12.         public static void main(String[] args) throws IOException
  13.         {
  14.                 File dir = new File("C:\\Users\\hyning\\Desktop\\java基础笔记\\");//指定目录
  15.                
  16.                 List<File> list = new ArrayList<File>(); //建集合

  17.                 fileToList(dir,list);//目录中的java文件存入集合
  18.                 System.out.println(list.size());
  19.                
  20.                 File filename = new File(dir,"javalist.txt");

  21.                 writeToFile(list,filename);//集合的元素写入文档
  22.         }
  23.         public static void fileToList(File dir,List<File> list){
  24.                 //遍历目录
  25.                 File[] fdir = dir.listFiles();
  26. //
  27. //                for(File file:fdir){
  28. //                        if(file.isDirectory())
  29. //                                fileToList(file,list);
  30. //                        else
  31. //                                if(file.getName().endsWith(".java"))
  32. //                                        list.add(file);
  33. //                }
  34.                 for(int i=0; i<fdir.length; i++){
  35.                         if(fdir[i].isDirectory())
  36.                                 fileToList(fdir[i],list);
  37.                         else
  38.                         {
  39.                                 if(fdir[i].getName().endsWith(".java"))
  40.                                         list.add(fdir[i]);
  41.                         }
  42.                 }
  43.         }
  44.         public static void writeToFile(List<File> list,File file) throws IOException
  45.         { //写集合元素到文档
  46.                 BufferedWriter bufw = null;
  47.                 try
  48.                 {
  49.                         bufw = new BufferedWriter(new FileWriter(file));
  50.                         for(File f: list){
  51.                                 String path = f.getAbsolutePath();
  52.                                 bufw.write(path);//字符流只能操作对象是字符串或字符
  53.                                 bufw.newLine();
  54.                                 bufw.flush();
  55.                         }       
  56.                 }
  57.                 catch (IOException e)
  58.                 {
  59.                         throw e;
  60.                 }
  61.                 finally
  62.                 {
  63.                         try
  64.                         {
  65.                                 if(bufw!=null)
  66.                                         bufw.close();
  67.                         }
  68.                         catch (IOException e)
  69.                         {
  70.                                 throw e;
  71.                         }
  72.                 }
  73.                
  74.         }
  75. }
复制代码


1 个回复

倒序浏览
风华正茂 来自手机 中级黑马 2015-8-7 12:21:13
沙发
楼主很强大,谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马