黑马程序员技术交流社区

标题: Java基础学习日记 - 建立一个文件列表(IO部分) [打印本页]

作者: qihuan    时间: 2015-7-15 09:22
标题: Java基础学习日记 - 建立一个文件列表(IO部分)
  1. package homeWork;

  2. import java.io.*;
  3. import java.util.*;
  4. /**
  5. * 练习:
  6. * 将一个指定目录下的文件的绝对路径储存到一个文本文件中,
  7. * 建立一个文件列表。
  8. *
  9. * 思路:
  10. * 1.对指定目录进行递归。
  11. * 2.获取递归过程所有的文件的路径。
  12. * 3.将这些路径储存到集合中。
  13. * 4.将集合中的数据写入到一个文件中。
  14. *
  15. * @author Qihuan
  16. *
  17. */
  18. public class JavaFileList {
  19.         public static void main(String[] args) {
  20.                 //选择目标文件目录
  21.                 File dir = new File("G:\\课程");
  22.                
  23.                 //创建集合,用来装文件目录
  24.                 ArrayList<File> list = new ArrayList<File>();
  25.                
  26.                 //调用文件->集合方法
  27.                 fileToList(dir,list);
  28.                
  29.                 //在指定目录创建一个列表文件
  30.                 File f = new File(dir,"课程列表.txt");
  31.                
  32.                 //调用方法,将集合中的目录文件导入到文件
  33.                 writeToFile(list,f);
  34.         }
  35.        
  36.         //定义方法:将目录放到集合中
  37.         private static void fileToList(File dir, ArrayList<File> list) {
  38.                
  39.                 File[] files = dir.listFiles();
  40.                
  41.                 for (File file : files) {
  42.                         if (file.isDirectory()) {
  43.                                 fileToList(file, list);
  44.                         } else {
  45.                                 if(file.getName().endsWith(".mp4") || file.getName().endsWith(".avi"))
  46.                                         list.add(file);
  47.                         }
  48.                 }
  49.         }
  50.        
  51.        
  52.         //定义方法:将集合中的内容写入到文件中
  53.         private static void writeToFile(ArrayList<File> list, File listFile) {
  54.                 BufferedWriter bufw = null;
  55.                
  56.                 try {
  57.                        
  58.                         bufw = new BufferedWriter(new FileWriter(listFile));
  59.                        
  60.                         for (File file : list) {
  61.                                 String path = file.getAbsolutePath();
  62.                                 bufw.write(path);
  63.                                 bufw.newLine();
  64.                                 bufw.flush();
  65.                         }
  66.                 } catch (IOException e) {
  67.                         throw new RuntimeException("写入失败!");
  68.                 } finally {
  69.                         try {
  70.                                 if(bufw != null)
  71.                                         bufw.close();
  72.                         } catch (IOException e) {
  73.                                 throw new RuntimeException("关闭失败!");
  74.                         }
  75.                 }
  76.         }
  77. }
复制代码







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