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

文章目录

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

在这里插入图片描述

对指定目录下的所有 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();}}}
}

运行成功
在这里插入图片描述

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/217941.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重新开启GPT Plus充值通道——基于前端开发者工具

chatGPT PLUS充值通道的关闭 由于chatGPT用户激增,近日,OpenAI的CEO Sam Altman宣布需要暂停新用户对ChatGPT Plus的订阅。在X上,他表达了对于确保用户体验的承诺,同时也提到了用户可以通过应用程序内的通知功能来了解服务恢复的…

构造命题公式的真值表

构造命题公式的真值表 1:实验类型:验证性2:实验目的:3:逻辑联结词的定义方法4:命题公式的表示方法5:【实验内容】 1:实验类型:验证性 2:实验目的&#xff1a…

excel表中慎用合并单元格,多用跨列居中

如下一个excel例表: 要将首行居中,最好的办法如下: 1、选中首行单元格 2、按下ctrl1,调出“设置单元格格式”,选中“对齐”,在“水平对齐”中选择“跨列居中” 3、完成任务 这样居中的好处是:可…

图形编辑器开发:缩放和旋转控制点

大家好,我是前端西瓜哥。好久没写图形编辑器开发的文章了。 今天来讲讲控制点。它是图形编辑器的不可缺少的基础功能。 控制点是吸附在图形上的一些小矩形和圆形点击区域,在控制点上拖拽鼠标,能够实时对被选中进行属性的更新。 比如使用旋…

【教学类-06-11】20231125(55格版)X-Y之间“除法÷题”(以1-9乘法口诀表倒推)(随机抽取和正序抽取)

图片展示 (随机打乱排序) 正序(每张都一样) 背景需求: 前面三篇写到了随机加法、随机减法、随机乘法,既然做了三套,怎么能不试试最后一款“除法”呢 模仿乘法版本,制作打乱版和正…

从零开始学习管道:进程通信的概念,特点和示例

📟作者主页:慢热的陕西人 🌴专栏链接:Linux 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 本博客主要内容通过进程通信的概念,引入管道,实…

3 Unsupervised learning recommenders reinforcement learning

文章目录 Week1Unsupervised LearningClusteringK-meansprincipleOptimization objectiveInitializing K-meanschose the number of clusters Anomaly DetectionFind unusual eventsAlgorithmchose epsilonAnomally Detection vs Supervised learningfeatures Week2Recommender…

华为ensp:单臂路由

通过单臂路由实现vlan之间的互通 将vlan和trunk配置好,我直接就在r1上演示单臂路由 我们要在r1的e0/0/0上面随便配置个ip,如果你不在接口上配置ip那就无法开启协议 R1 interface e0/0/0 进入真实接口随便配置个ip ip add 192.168.10.1 24 再进入子接…

掌握3个Mock工具,轻松玩转单元测试

公司要求提升单元测试的质量,提高代码的分支覆盖率和行覆盖率,安排我研究单元测试,指定方案分享并在开发部普及开。 单元测试中的Mock的目的 Mock的主要目的是让单元测试Write Once, Run Everywhere. 即编写一次后,可以在任意时…

C语言SO EASY(ZZULIOJ1220: SO EASY)

题目描述 Superbin最近在研究初等数论,初等数论 是研究数的规律,特别是整数性质的数学分支。它是数论的一个最古老的分支。它以算术方法为主要研究方法,主要内容有整数的整除理论、同余理论、连分数理论和某些特殊不定方程。 是定义在正整数…

香蕉派BPI-M4 Zero单板计算机采用全志H618,板载2GRAM内存

Banana Pi BPI-M4 Zero 香蕉派 BPI-M4 Zero是BPI-M2 Zero的最新升级版本。它在性能上有很大的提高。主控芯片升级为全志科技H618 四核A53, CPU主频提升25%。内存升级为2G LPDDR4,板载8G eMMC存储。它支持5G WiFi 和蓝牙, USB接口也升级为type-C。 它具有与树莓派 …

链表经典面试题

1 回文链表 1.1 判断方法 第一种(笔试): 链表从中间分开,把后半部分的节点放到栈中从链表的头结点开始,依次和弹出的节点比较 第二种(面试): 反转链表的后半部分,中间节…