【经典小练习】输出文件路径名
文章目录
- 🌹问题
- ✨思路
- 🍔代码
- 🛸读取文件,并把文件名保存到文件中
对指定目录下的所有 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();}}}
}
运行成功

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

相关文章:
【经典小练习】输出文件路径名
文章目录 🌹问题✨思路🍔代码🛸读取文件,并把文件名保存到文件中 对指定目录下的所有 Java 文件进行编译、打包等处理; 查找指定目录下所有包含特定字符串的 Java 文件; 统计指定目录下所有 Java 文件的行数…...
【Python】【Torch】神经网络中各层输出的特征图可视化详解和示例
本文对神经网络各层特征图可视化的过程进行运行示例,方便大家使用,有助于更好的理解深度学习的过程,尤其是每层的结果。 神经网络各层特征图可视化的好处和特点如下: 可视化过程可以了解网络对图像像素的权重分布,可…...
接口测试学习路线
接口测试分为两种: 测试外部接口:系统和外部系统之间的接口 如:电商网站:支付宝支付 测试内部接口:系统内部的模块之间的联调,或者子系统之间的数据交互 测试重点:测试接口参数传递的正确性&…...
蓝桥杯官网算法赛(蓝桥小课堂)
问题描述 蓝桥小课堂开课啦! 海伦公式(Herons formula),也称为海伦-秦九韶公式,是用于计算三角形面积的一种公式,它可以通过三条边的长度来确定三角形的面积,而无需知道三角形的高度。 海伦公…...
求集合的笛卡尔乘积
求集合的笛卡尔乘积 一:【实验目的】二:【实验内容】三:【实验原理】四:代码实现: 一:【实验目的】 通过编实现给定集合A和B的笛卡尔积CAA,DAB,EBA,FAAB,GA(A*B). 二:【实验内容】…...
Linux系统常用指令大全(图文详解)
目录 前言 一、UNIX的登录与退出 1、登录 (1)执行格式: (2)步骤 2、退出 二、UNIX命令格式 三、常用命令 1、目录操作 (1)显示目录文件 ls (2)建新目录 …...
基于PLC触摸屏控制的伺服电机绕线机
摘 要 绕线机是专供连续绕制多圈电位器绕阻的专用机床设备。本文介绍了采用 PLC作为主控制机器,触摸屏作为操作界面,步进电机、伺服电机驱动的绕线机系统。描述 了触摸屏的原理、分类和触摸屏人机界面的控制方式,完成了触摸屏人机界面设计。…...
1.8 C语言之参数传递
1.8 C语言之参数传递 一、参数传递 一、参数传递 在C语言中,所有的参数传递都是值传递,也就是说,传递给被调用函数的参数值存放在临时变量中,而不是存放在原来的变量中。这与其他语言的引用传递有所不同。在C语言中,被…...
【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形式…...
【黑马甄选离线数仓day05_核销主题域开发】
1. 指标分类 通过沟通调研,把需求进行分析、抽象和总结,整理成指标列表。指标有原子指标、派生指标、 衍生指标三种类型。 原子指标基于某一业务过程的度量值,是业务定义中不可再拆解的指标,原子指标的核心功能就是对指标…...
使用gin 代理 web网页
问web项目的代理,业界常用的方案是nginx做代理,这个是网上最多资料的。 因为我需要做自己的流量转发,也就是所有访问都要经过我的一个流量分发微服务,这和nginx作用冲突了。如果再加个nginx来做第一层方向代理和网页的静态资源代…...
计算器的模拟实现
计算器的模拟实现 一、实验题目:计算器二:实验目的:三:实验内容与实现1:【实验内容】2:【实验实现】1.计算器界面的实现,如下图所示:2:各项功能的实现,如下图…...
CentOS7搭建smb服务器
安装smb sudo yum install samba samba-client samba-common配置smb vim /etc/samba/smb.conf [shared] path /path/to/shared/folder writable yes browsable yes guest ok yes valid users yourname添加smb用户 sudo useradd youname sudo smbpasswd -a youname然后会…...
openEuler 22.03 LTS x86_64 cephadm 部署ceph 16.2.14 未完成 笔记
环境 准备三台虚拟机 10.47.76.94 node-1 10.47.76.95 node-2 10.47.76.96 node-3 下载cephadm [rootnode-1 ~]# yum install cephadm Last metadata expiration check: 0:11:31 ago on Tue 21 Nov 2023 10:00:20 AM CST. Dependencies resolved. Package …...
Java计算时间差,距结束还有几天几小时几分钟
文章目录 1、写法2、备份3、LocalDate、LocalDateTime、Date、String互转 1、写法 //静态方法,传入年月日时分秒 LocalDateTime startTime LocalDateTime.of(2023, 11, 22, 15, 09, 59); LocalDateTime endTime LocalDateTime.of(2023, 11, 30, 0, 0, 0); //计算…...
【云原生 Prometheus篇】Prometheus的动态服务发现机制与认证配置
目录 一、Prometheus服务发现的方式1.1 基于文件的服务发现1.2 基于consul的服务发现1.3 基于 Kubernetes API 的服务发现1.3.1 简介1.3.2 基于Kurbernetes发现机制的部分配置参数 二、实例一:部署基于文件的服务发现2.1 创建用于服务发现的文件2.2 修改Prometheus的…...
ref详解(C#)
本质上来说 ref 的就是把 C/C 指针的那一套又拿回来了,而且还封装成一套自己的玩法。 我想设计者的初心把 ref 的功能限制得死死的,可能也考虑到 C# 是一门面向业务开发的语言,讲究的是做项目快狠准,性能反而不是第一要素&#x…...
运维高级-day01
shell回顾 1、快速生成版权控制信息,具体的内容自己替换 [root scripts]# cat ~/.vimrc autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()" func SetTitle() if expand("%:e") sh call setline(1,"#!/bin/bash")…...
含分布式电源的配电网可靠性评估matlab程序
微❤关注“电气仔推送”获得资料(专享优惠) 参考文献: 基于仿射最小路法的含分布式电源配电网可靠性分析——熊小萍 主要内容: 通过概率模型和时序模型分别进行建模,实现基于概率模型最小路法的含分布式电源配电网…...
k8s docker总结特殊点
k8s docker总结特殊点 前言一、docker 的驱动。1、cgroup:(Control Groups)2、日志驱动(log driver)3、存储驱动4、网络驱动: 二、k8s中网络插件(常用calico,次flannel)**Flannel:**…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...
DBLP数据库是什么?
DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...
