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

文章目录

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

在这里插入图片描述

对指定目录下的所有 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.mzph.cn/news/170529.shtml

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

相关文章

【数据结构实验】树(一)构建二叉查找树(BST)

文章目录 1. 引言2. 二叉查找树3. 实验内容3.1 实验题目(一)输入要求(二)输出要求 3.2 算法实现1. 数据结构2. 全局变量3. 中序遍历函数InOrder4. 二叉查找树的构建函数T5. 主函数 3.3 代码整合 4. 实验结果 1. 引言 二叉查找树&a…

【Linux】进程间通信——system V共享内存、共享内存的概念、共享内存函数、system V消息队列、信号量

文章目录 进程间通信1.system V共享内存1.1共享内存原理1.2共享内存数据结构1.3共享内存函数 2.system V消息队列2.1消息队列原理 3.system V信号量3.1信号量原理3.2进程互斥 4.共享内存的使用示例 进程间通信 1.system V共享内存 1.1共享内存原理 共享内存区是最快的IPC形式…

从零开始搭建博客网站-----源代码试部署

拿到了该项目的源码,先尝试是否可以成功部署,详细的部署视频地址 后端项目部署 先把maven配置好,都改成自己下载的maven地址 文件编码改成utf-8,防止配置文件乱码 如果maven是刚下的,要改一下下载包的地址&#xff0…

ASP产品通过网络安全专用产品安全认证

什么是网络安全专用产品安全检测? 网络安全专用产品安全检测是指对网络关键设备和网络安全专用产品进行安全性评估和检测,以确保其符合相关标准和法规的要求,能够有效地抵御网络攻击和威胁。该检测由具备资格的机构进行,采用认证…

bugku 渗透测试

场景1 查看源代码 场景2 用dirsearch扫描一下看看 ok看到登录的照应了第一个提示 进去看看 不出所料 随便试试admin/admin进去了 在基本设置里面看到falg 场景3 确实是没啥想法了 找到php在线运行 检查网络,我们发现这个php在线运行会写入文件 那我们是不是写…

【SpringCloud】设计原则之单一职责与服务拆分

一、设计原则之单一职责 设计原则很重要的一点就是简单,单一职责也就是所谓的专人干专事 一个单元(一个类、函数或微服务)应该有且只有一个职责 无论如何,一个微服务不应该包含多于一个的职责 职责单一的后果之一就是职责单…

Java网络爬虫实战

List item 文章目录 ⭐️写在前面的话⭐️📌What is it?分类网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫(General Purpose Web Crawler)、聚焦网络爬虫(Focused Web Crawler&a…

Inport 模块

文章目录 Interpolate datainport 模块存在于模型最顶层Port Dimension 和 Variable-size signal Interpolate data Interpolate data:当将 Workspace 的数据导人模型时, 对没有对应数据点的采样时刻进行线性插值的开关选项。 inport 模块存在于模型最顶层 inpo…

十大排序之计数排序、桶排序、基数排序(详解)

文章目录 🐒个人主页🏅算法思维框架📖前言: 🎀计数排序 时间复杂度O(nk)🎇1. 算法步骤思想🎇2.动画实现🎇 3.代码实现 🎀桶排序🎇1. 算法步骤思想&#x1f38…

共享模型之内存

JMM JMM:Java内存模型。定义了主存(所有线程共享的数据)、工作内存(每个线程对应的私有数据)的抽象概念。 JMM存在以下几个特征 原子性:保证指令不会受到线程上下文切换所影响。可见性:保证指…

4面试题--数据库(mysql)

执⾏⼀条 select / update 语句,在 MySQL 中发⽣了什么? Server 层负责建⽴连接、分析和执⾏ SQL。MySQL ⼤多数的核⼼功能模块都在这实现,主要包括 连接器,查询缓存(8.0版本去除,因为每次更新将会清空该…

4.前端--HTML标签3【2023.11.25】

1.表格 1.1表格的作用 表格的作用&#xff1a;表格主要用于显示、展示数据 1.2表格的基本格式 <table><tr><td>单元格内的文字</td><td>单元格内的文字</td>...</tr>... </table><table> </table> 是用于定义表…

搜索 C. Tic-tac-toe

Problem - C - Codeforces 思路&#xff1a;搜索&#xff0c;判断合法性。从起始态用搜索进行模拟&#xff0c;这样可以避免后面判断合法性这一繁琐的步骤。用一个map进行映射当前态及对应的结果。剪枝&#xff1a;如果当前字符串已经被搜索过&#xff0c;则直接跳过去。 代码…

【开源】基于JAVA的车险自助理赔系统

项目编号&#xff1a; S 018 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S018&#xff0c;文末获取源码。} 项目编号&#xff1a;S018&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 角色管理模块2.3 车…

1.3 取反器和8位取反器

取反器真值表: 取反开关输入输出011000110101 取反器相当于一个异或门 8位取反器

【深度学习】因果推断与机器学习

2023年初是人工智能爆发的里程碑式的重要阶段&#xff0c;以OpenAI研发的GPT为代表的大模型大行其道&#xff0c;NLP领域的ChatGPT模型火爆一时&#xff0c;引发了全民热议。而最新更新的GPT-4更是实现了大型多模态模型的飞跃式提升&#xff0c;它能够同时接受图像和文本的输入…

Co-DETR:DETRs与协同混合分配训练代码学习笔记

关于论文的学习笔记&#xff1a;Co-DETR:DETRs与协同混合分配训练论文学习笔记-CSDN博客 作者提出了一种新的协同混合任务训练方案&#xff0c;即Co-DETR&#xff0c;以从多种标签分配方式中学习更高效的基于detr的检测器。这种新的训练方案通过训练ATSS和Faster RCNN等一对多标…

【搜维尔科技】产品推荐:Virtuose 6D RV,大型工作空间触觉设备

Virtuose 6D RV为一款具有大工作空间并在所有6自由度上提供力反馈的触觉设备&#xff0c;设计专用于虚拟现实环境&#xff0c;特别适合于大型虚拟物体的处理。 Virtuose 6D RV是当今市场上唯一将高工作效率与高工作量相结合在一起的产品。6D RV特别适合于缩放与操纵等应用&…

【LeetCode】挑战100天 Day16(热题+面试经典150题)

【LeetCode】挑战100天 Day16&#xff08;热题面试经典150题&#xff09; 一、LeetCode介绍二、LeetCode 热题 HOT 100-182.1 题目2.2 题解 三、面试经典 150 题-183.1 题目3.2 题解 一、LeetCode介绍 LeetCode是一个在线编程网站&#xff0c;提供各种算法和数据结构的题目&…

【数据结构实验】图(三)图的深度优先搜索(DFS)生成树

文章目录 1. 引言2. 深度优先搜索生成树3. 实验内容3.1 实验题目&#xff08;一&#xff09;输入要求&#xff08;二&#xff09;输出要求 3.2 算法实现1. 数据结构2. 队列操作函数3. 广度优先搜索遍历4. 创建图5. 深度优先搜索算法6. 主函数及DFS主函数7. 输出生成树信息 3.3 …