【经典小练习】输出文件路径名

文章目录

  • 问题
  • ✨思路
  • 代码
  • 读取文件,并把文件名保存到文件中

【经典小练习】输出文件路径名_第1张图片

对指定目录下的所有 Java 文件进行编译、打包等处理;
查找指定目录下所有包含特定字符串的 Java 文件;
统计指定目录下所有 Java 文件的行数、字符数等信息;
这个时候我们就要把文件目录读取出来

问题

编写程序,将某一个目录下(比如D:\workspace)(包含子目录)所有的java结尾的文件的绝对路径给输出在控制台。

✨思路

定义一个递归方法,用于遍历指定目录下的所有文件和子目录。
在递归方法中,对于每个文件或目录,判断是否是目录。如果是目录,则递归调用该方法;如果是文件,则判断文件名是否以 “.java” 结尾。
如果是以 “.java” 结尾的文件,则输出该文件的绝对路径。
在主程序中调用递归方法,传入目标目录的路径。

代码

package org.Demo7;

import java.io.File;

public class file1 {
    public static void main(String[] args) {
        String directoryPath = "F:\\java项目"; // 指定工作空间目录

        // 调用递归方法查找并输出满足条件的文件路径
        findJavaFiles(directoryPath);
    }

    public static void findJavaFiles(String directoryPath) {
        File directory = new File(directoryPath);

        // 获取该目录下的所有文件和文件夹
        File[] files = directory.listFiles();
        if (files != null) {
            for (File file : files) {
                if (file.isDirectory()) {
                    // 如果是文件夹,递归调用该方法
                    findJavaFiles(file.getAbsolutePath());
                } else {
                    // 判断是否以.java结尾
                    if (file.getName().endsWith(".java")) {
                        // 输出满足条件的文件的绝对路径
                        System.out.println(file.getAbsolutePath());
                    }
                }
            }
        }
    }
}

如果我们想把文件名保存在其他文件中应该怎么办呢

读取文件,并把文件名保存到文件中

package org.Demo7;
//
//import java.io.File;
//
//public class file1 {
//    public static void main(String[] args) {
//        String directoryPath = "F:\\java项目"; // 指定工作空间目录
//
//        // 调用递归方法查找并输出满足条件的文件路径
//        findJavaFiles(directoryPath);
//    }
//
//    public static void findJavaFiles(String directoryPath) {
//        File directory = new File(directoryPath);
//
//        // 获取该目录下的所有文件和文件夹
//        File[] files = directory.listFiles();
//        if (files != null) {
//            for (File file : files) {
//                if (file.isDirectory()) {
//                    // 如果是文件夹,递归调用该方法
//                    findJavaFiles(file.getAbsolutePath());
//                } else {
//                    // 判断是否以.java结尾
//                    if (file.getName().endsWith(".java")) {
//                        // 输出满足条件的文件的绝对路径
//                        System.out.println(file.getAbsolutePath());
//                    }
//                }
//            }
//        }
//    }
//}
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.File;

public class file1 {
    public static void main(String[] args) {
        String directoryPath = "F:\\java项目"; // 指定工作空间目录
        String outputFilePath = "G:\\files.txt"; // 输出文件路径

        // 调用递归方法查找并输出满足条件的文件路径
        findJavaFiles(directoryPath, outputFilePath);
    }

    public static void findJavaFiles(String directoryPath, String outputFilePath) {
        File directory = new File(directoryPath);

        // 获取该目录下的所有文件和文件夹
        File[] files = directory.listFiles();
        if (files != null) {
            try (BufferedWriter writer = new BufferedWriter(new FileWriter(outputFilePath, true))) {
                for (File file : files) {
                    if (file.isDirectory()) {
                        // 如果是文件夹,递归调用该方法
                        findJavaFiles(file.getAbsolutePath(), outputFilePath);
                    } else {
                        // 判断是否以.java结尾
                        if (file.getName().endsWith(".java")) {
                            // 输出满足条件的文件的绝对路径到文件
                            writer.write(file.getAbsolutePath());
                            writer.newLine();
                        }
                    }
                }
                System.out.println("Java文件路径已保存到: " + outputFilePath);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

运行成功
【经典小练习】输出文件路径名_第2张图片

在技术的道路上,我们不断探索、不断前行,不断面对挑战、不断突破自我。科技的发展改变着世界,而我们作为技术人员,也在这个过程中书写着自己的篇章。让我们携手并进,共同努力,开创美好的未来!愿我们在科技的征途上不断奋进,创造出更加美好、更加智能的明天!

【经典小练习】输出文件路径名_第3张图片

你可能感兴趣的:(Java小练习,开发语言,java)