- package homeWork;
- import java.io.*;
- import java.util.*;
- /**
- * 练习:
- * 将一个指定目录下的文件的绝对路径储存到一个文本文件中,
- * 建立一个文件列表。
- *
- * 思路:
- * 1.对指定目录进行递归。
- * 2.获取递归过程所有的文件的路径。
- * 3.将这些路径储存到集合中。
- * 4.将集合中的数据写入到一个文件中。
- *
- * @author Qihuan
- *
- */
- public class JavaFileList {
- public static void main(String[] args) {
- //选择目标文件目录
- File dir = new File("G:\\课程");
-
- //创建集合,用来装文件目录
- ArrayList<File> list = new ArrayList<File>();
-
- //调用文件->集合方法
- fileToList(dir,list);
-
- //在指定目录创建一个列表文件
- File f = new File(dir,"课程列表.txt");
-
- //调用方法,将集合中的目录文件导入到文件
- writeToFile(list,f);
- }
-
- //定义方法:将目录放到集合中
- private static void fileToList(File dir, ArrayList<File> list) {
-
- File[] files = dir.listFiles();
-
- for (File file : files) {
- if (file.isDirectory()) {
- fileToList(file, list);
- } else {
- if(file.getName().endsWith(".mp4") || file.getName().endsWith(".avi"))
- list.add(file);
- }
- }
- }
-
-
- //定义方法:将集合中的内容写入到文件中
- private static void writeToFile(ArrayList<File> list, File listFile) {
- BufferedWriter bufw = null;
-
- try {
-
- bufw = new BufferedWriter(new FileWriter(listFile));
-
- for (File file : list) {
- String path = file.getAbsolutePath();
- bufw.write(path);
- bufw.newLine();
- bufw.flush();
- }
- } catch (IOException e) {
- throw new RuntimeException("写入失败!");
- } finally {
- try {
- if(bufw != null)
- bufw.close();
- } catch (IOException e) {
- throw new RuntimeException("关闭失败!");
- }
- }
- }
- }
复制代码
|
|