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

文章目录

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

在这里插入图片描述

对指定目录下的所有 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…

rabbitMq确认机制之ConfirmType

配置方式 Bean(name "connectionFactory")Primarypublic ConnectionFactory normalConnectionFactory(Value("${spring.rabbitmq.username}") String username,Value("${spring.rabbitmq.password}") String password,Value("${spring.rab…

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

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

SELinux零知识学习三十二、SELinux策略语言之角色和用户(3)

接前一篇文章:SELinux零知识学习三十一、SELinux策略语言之角色和用户(2) 三、SELinux策略语言之类型强制 SELinux提供了一种依赖于类型强制(类型增强,TE)的基于角色的访问控制(Role-Based Access Control),角色用于组域类型和限制域类型与用户之间的关系,SELinux中…

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…

Linux在安装epel-release时,报错epel-release-7-14.noarch.rpm 的公钥尚未安装

Linux在安装epel-release时报错: [rootXWDBDEV01 ~]# yum install epel-release 已加载插件:fastestmirror, langpacks, product-id, search-disabled-repos, subscription-managerThis system is not registered with an entitlement server. You can …

共享模型之内存

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_4练习题

一、单项选择题&#xff08;本大题共20小题&#xff0c;每小题2分&#xff0c;共40分。在每小题给出的四个备选项中选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。) 定义如下变量和数组&#xff1a; int i; int x[3][3]{1,2,3,4,5,6,7,8,9}; 则下面语句的输…

【科技素养】蓝桥杯STEMA 科技素养组模拟练习试卷7

1、一袋小球中有15个白球&#xff0c;3个红球和2个黑球。在随机从袋子中拿出至少&#xff08;&#xff09;个小球后&#xff0c;才可以保证至少拿出了5个白球 A、5 B、10 C、8 D、15 答案&#xff1a;B 2、以下选项中&#xff0c;数值最接近十进制数114的是&#xff08; &…

SIPp mac和debian用法可能略有差别

<ereg regexp"<(.*)>" search_in"hdr" header"Contact:" check_it"true" assign_to"dummy,remote_contact"/> debian没事&#xff0c;但mac报错 <变&lt >变&gt 就都冇问题了 https://github.…

搜索 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 车…