io- /*
- 需求:将一个指定目录下的java文件的绝对路径,存储到一个文本文件中
- 分析: 1、对指定目录进行递归
- 2、获取递归过程中所有的java文件的绝对路径
- 3、将路径存入集合中
- 4、将集合中的元素写入文档
- */
- import java.io.*;
- import java.util.*;
- class JavaFileList
- {
- public static void main(String[] args) throws IOException
- {
- File dir = new File("C:\\Users\\hyning\\Desktop\\java基础笔记\\");//指定目录
-
- List<File> list = new ArrayList<File>(); //建集合
- fileToList(dir,list);//目录中的java文件存入集合
- System.out.println(list.size());
-
- File filename = new File(dir,"javalist.txt");
- writeToFile(list,filename);//集合的元素写入文档
- }
- public static void fileToList(File dir,List<File> list){
- //遍历目录
- File[] fdir = dir.listFiles();
- //
- // for(File file:fdir){
- // if(file.isDirectory())
- // fileToList(file,list);
- // else
- // if(file.getName().endsWith(".java"))
- // list.add(file);
- // }
- for(int i=0; i<fdir.length; i++){
- if(fdir[i].isDirectory())
- fileToList(fdir[i],list);
- else
- {
- if(fdir[i].getName().endsWith(".java"))
- list.add(fdir[i]);
- }
- }
- }
- public static void writeToFile(List<File> list,File file) throws IOException
- { //写集合元素到文档
- BufferedWriter bufw = null;
- try
- {
- bufw = new BufferedWriter(new FileWriter(file));
- for(File f: list){
- String path = f.getAbsolutePath();
- bufw.write(path);//字符流只能操作对象是字符串或字符
- bufw.newLine();
- bufw.flush();
- }
- }
- catch (IOException e)
- {
- throw e;
- }
- finally
- {
- try
- {
- if(bufw!=null)
- bufw.close();
- }
- catch (IOException e)
- {
- throw e;
- }
- }
-
- }
- }
复制代码
|
|