Java递归生成本地文件目录树形结构

Java递归生成本地文件目录(树行结构)

1.读取txt文件保存的文件目录结构

在这里插入图片描述

2.递归生成本地文件目录树形结构,并修改目录文件前缀进行递增

在这里插入图片描述

3.结果截图

在这里插入图片描述
在这里插入图片描述

4.代码

package com.zfi.server.device;import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;@RestController
@RequestMapping("test")
@Api(tags = "test")
public class FileAddTest {public static void main(String[] args) {String txtFileName = "F://temp//questions.txt";String outputDirectory = "F://temp//output";int directoryCount = 1;int fileCount = 1;String currentDirectory = null; // 记录最近一次生成的目录名称try (BufferedReader reader = new BufferedReader(new FileReader(txtFileName))) {String line;while ((line = reader.readLine()) != null) {if (line.startsWith("-")) {// 如果是目录行,则创建目录String directoryName = String.format("%02d%s", directoryCount, line.substring(1).trim()); // 去掉前导的"-"createDirectory(outputDirectory, directoryName);currentDirectory = directoryName; // 更新最近一次生成的目录名称directoryCount++;} else {// 否则,认为是文件,将其写入当前目录if (currentDirectory != null) {String fileName = String.format("%02d%s", fileCount, line.trim()+".md");createFile(outputDirectory + File.separator + currentDirectory, fileName);fileCount++;} else {System.out.println("警告:文件 '" + line + "' 没有对应的目录。");}}}System.out.println("文件和目录生成完成。");} catch (IOException e) {System.out.println("发生异常:" + e.getMessage());e.printStackTrace();}}private static void createDirectory(String parentDir, String dirName) {File directory = new File(parentDir, dirName);if (!directory.exists()) {directory.mkdir();System.out.println("生成目录:" + directory.getAbsolutePath());} else {System.out.println("目录已存在:" + directory.getAbsolutePath());}}private static void createFile(String parentDir, String fileName) throws IOException {File file = new File(parentDir, fileName);if (!file.exists()) {file.createNewFile();System.out.println("生成文件:" + file.getAbsolutePath());} else {System.out.println("文件已存在:" + file.getAbsolutePath());}}
}

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

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

相关文章

【kubernetes】关于k8s集群的存储卷

目录 一、存储卷的分类 二、empty存储卷以及特点 三、hostpath存储卷以及特点 四、nfs存储卷以及特点 五、pvc存储卷 查看pv的定义 查看pvc的定义 实操:静态创建pv的方式 实现pvc存储卷 步骤一:先完成nfs的目录共享,需要准备不同的目…

JavaScript的`call`方法:实现函数间的调用!

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

plc远程锁机网关,远程锁机与防拆功能双重保障

在设备租赁和分期购买领域,如何确保设备的安全与资金的回收一直是各大厂家和卖家关注的重点。传统的锁机方式往往需要人工介入,不仅效率低下,而且成本高昂。如今,借助HiWoo Box的远程锁机功能,这些问题将迎刃而解。 什…

蓝海资讯|网红老阳推荐的视频号带货项目怎么样?

在当今社会,随着互联网的快速发展,网红经济已经成为一个热门的话题。在这个背景下,许多人都想通过加入网红行业来实现自己的财富自由。其中,网红老阳推荐的视频号带货项目引起了广泛关注。但是,这个项目是否真的如想象…

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:点击回弹效果)

设置组件点击时回弹效果。 说明: 从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 clickEffect clickEffect(value: ClickEffect | null) 设置当前组件点击回弹效果。 系统能力: SystemCapabilit…

左手WPS右手Eversheet,金山系办公软件不惧微软,迎接国内新生态

众所周知,技术架构的每一次翻新,都会引发产业的剧变。 在过去几年里,诸如办公软件、数据库及操作系统等基础软件,在传统架构的束缚下,国内企业几乎无法与外企并驾齐驱,更别提领先了。然而,在移…

python基础——基础语法

文章目录 一、基础知识1、字面量2、常用值类型3、注释4、输入输出5、数据类型转换6、其他 二、字符串拓展1、字符串定义2、字符串拼接3、字符串格式化4、格式化精度控制 三、条件/循环语句1、if2、while3、for循环 四、函数1、函数定义2、函数说明文档3、global关键字 五、数据…

深入了解 Android 中的 RelativeLayout 布局

RelativeLayout 是 Android 中常用的布局之一&#xff0c;它允许开发者基于子视图之间的相对位置来排列界面元素。在这篇博客中&#xff0c;我们将详细介绍 RelativeLayout 的各种属性&#xff0c;并提供代码示例和解释。 第一个示例 <RelativeLayoutandroid:layout_width…

数据分类分级场景建设思路

数据分类分级是数据安全治理实践过程中的关键场景&#xff0c;是数据安全工作的桥头堡和必选题。本指南结合行业实践&#xff0c;提出如下图 所示的七步走建设思路&#xff0c;可供刚开展数据分类分级工作的组织参考。 来源&#xff1a;中国信息通信研究院 数据分类分级“七步…

VMwareWorkstation17.0虚拟机搭建Windows 98虚拟机(完整安装步骤详细图文教程)

VMwareWorkstation17.0虚拟机搭建Windows 98虚拟机&#xff08;完整安装步骤详细图文教程&#xff09; 前言1.当年古董是啥样的?2.当年玩啥游戏&#xff1f;TOP1 星际争霸TOP2 红警TOP3 仙剑奇侠传其他游戏 3.Windows 98安装准备工作3.1 Windows 98下载地址3.2 DOS软盘版下载地…

算法学习03:前缀和与差分(互逆)

算法学习03&#xff1a;前缀和与差分&#xff08;互逆&#xff09; 文章目录 算法学习03&#xff1a;前缀和与差分&#xff08;互逆&#xff09;前言一、前缀和1.一维2.二维 二、差分1.一维在这里插入图片描述2.二维在这里插入图片描述 ![在这里插入图片描述](https://img-blog…

Java 解决异步 @Async 失效问题

1.问题描述 使用Async进行异步处理时&#xff0c;异步没有生效 2.原因分析 经过排查后发现是因为使用Async的方法没有跨2个Service导致的 错误示例 控制器接口 > 直接调用 custAdminService.importCBuy() 3.解决方案 Controller接口不变&#xff0c;多添加一层Service&a…