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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

请批评指正,有更优化代码或思路也请赐教,谢谢!
/*
练习
将一个指定目录下的java文件的绝对路径,存储到一个文本文件中。
建立一个java文件列表文件。
*/
import java.util.*;
import java.io.*;
class  Test
{
public static void main(String[] args) throws Exception
{
  File f = new File("d:\\java");  
  File f1 = new File("d:\\java\\list.txt");
  f1.createNewFile();
  ArrayList<String> list = new ArrayList<String>();
  
  getList(f, list);
  
  writeToFile(list, f1);
  
  
}

//把目录下的所有java文件(含子目录)的文件名以字符串形式存到列表中
public static void getList(File f, ArrayList<String> list)
{
  File[] files = f.listFiles();           
  int len = files.length;
  
  
  for (int i=0; i<len; i++)
  {
   
   if(files[i].isDirectory())      
   {
    getList(files[i],list);   //对文件夹递归
   }
   else
   {
    if(files[i].getName().endsWith(".java"))
     list.add(files[i].getAbsolutePath());
   }
  }
}
//把获取到的列表中的所有字符串写入到指定文件中
public static void writeToFile(ArrayList<String> list, File f1) throws IOException
{
  BufferedWriter bw = null;
   
  try
  {
   bw = new BufferedWriter(new FileWriter(f1));
   char[] ch = new char[1024];
   for (String str: list)
   {
    ch = str.toCharArray();
    bw.write(ch, 0, ch.length);
    bw.newLine();
    bw.flush();
   }
  }
  catch (IOException e)
  {
   throw e;
  }
  finally
  {
   try
   {
    if(bw!=null)
    bw.close();
   }
   catch (IOException e)
   {
    throw e;
   }
  }
}
}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马