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.mzph.cn/news/725107.shtml

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

相关文章

Postman接口测试—配置token为全局变量,配置测试环境

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 为什么要进行接口测试 因为不同端(前段,后端)的工作进度不一…

仿牛客网项目---关注模块的实现

本篇文章是关于我的项目的关注模块的开发。 关注模块的开发实现了用户之间的关注功能和关注列表的展示。通过使用相应的服务类处理关注和取消关注操作,并利用用户服务类获取用户信息,实现了关注功能的存储和查询。同时,通过触发关注事件&…

【软考】设计模式之访问者模式

目录 1. 说明2. 应用场景3. 结构图4. 构成5. java示例5.1 喂动物5.1.1 抽象访问者5.1.2 具体访问者5.1.3 抽象元素5.1.4 具体元素5.1.5 对象结构5.1.6 客户端类5.1.7 结果示例 5.2 超市销售系统5.2.1 业务场景5.2.2 业务需求类图5.2.3 抽象访问者5.2.4 具体访问者5.2.5 抽象元素…

前端面试拼图-原理源码

摘要:最近,看了下慕课2周刷完n道面试题,记录下... 1. JS内存泄漏如何检测?场景有哪些? 1.1 垃圾回收 GC 垃圾回收是一种自动管理内存的机制,它负责在运行时跟踪内存的分配和使用情况,并在不再需要的对象…

理解CAE

用于自监督表示学习的上下文自动编码器 摘要 我们提出了一种新的掩模图像建模(MIM)方法,上下文自编码器(CAE),用于自监督表示预训练。我们通过在编码的表示空间中进行预测来预训练编码器。预训练任务包括两个任务:掩模表示预测—预测掩模块的表示&…

专业145+总分410+西工大西北工业大学827信号与系统考研经验电子信息与通信工程,海航,真题,大纲,参考书。

经过一年的努力,分数终于出来。今年专业课827信号与系统145(很遗憾差了一点点满分,没有达到Jenny老师的最高要求),数一130,英语和政治也都比较平衡,总分410分,当然和信息通信考研Jen…

C及C++每日练习(2)

1.选择: 1.使用printf函数打印一个double类型的数据,要求:输出为10进制,输出左对齐30个字符,4位精度。以下哪个选项是正确的? A.%-30.4e B.%4.30e C.%-30.4f D.%-4.30 在上一篇文章中,提到了…

变老特效哪个app可以拍?深入探索变老效果的应用

随着科技的进步和智能手机的普及,各种摄影应用如雨后春笋般涌现,为我们提供了前所未有的创意拍摄体验。其中,变老特效因其独特的魅力,吸引了众多用户的关注。这种特效能够让我们在短时间内看到自己老去的模样,既有趣又…

JavaWeb HTTP 请求头、请求体、响应头、响应体、响应状态码

J2EE(Java 2 Platform Enterprise Edition)是指“Java 2企业版”,B/S模式开发Web应用就是J2EE最核心的功能。 Web是全球广域网,也称为万维网(www),能够通过浏览器访问的网站。 在日常的生活中,经常会使用…

强大的ps 命令 -o 自定义输出内容选项

强大的ps 命令 -o 自定义输出内容选项 1、ps命令介绍和作用2、问题描述 1、ps命令介绍和作用 ps 是一个 Unix 和类 Unix 操作系统中常用的命令,用于显示当前运行的进程信息。ps 命令的作用包括: 查看进程信息: ps 命令可以列出当前系统中正…

力扣每日一题:Dijkstra1976.到达目的地的方案数

本题是在非负权值图中求解最短路径,典型的Dijkstra算法的应用,只不过在求解最短路径时,还需要记录最短路径数目。这个又涉及到一点动态规划的思想。 考虑一个点u,原点到u的最短路径为dis[u],最短路径数目为ways[u]&…

算法D30 | 回溯算法6 | 332.重新安排行程 51. N皇后 37. 解数独

详细布置 今天这三道题都非常难,那么这么难的题,为啥一天做三道? 因为 一刷 也不求大家能把这么难的问题解决,所以 大家一刷的时候,就了解一下题目的要求,了解一下解题思路,不求能直接写出代码…

数据结构之顺序表及其实现!

目录 ​编辑 1. 顺序表的概念及结构 2. 接口的实现 2.1 顺序表的初始化 2.2 检查顺序表容量是否已满 2.3 顺序表的尾插 ​编辑 2.4 顺序表的尾删 2.5 顺序表的头插 2.6 顺序表的头删 2.7 顺序表在pos位置插入 2.8 顺序表在pos位置删除 2.9 顺序表的查找 2.10 顺…

探秘RestTemplate:解析远程调用的神奇力量(二)

本系列文章简介: 本系列文章将深入探讨RestTemplate的原理及其应用。我们将从RestTemplate的工作原理开始,解析其内部机制和工作流程。然后,我们将介绍RestTemplate的核心功能和特点,以及它在不同场景下的应用。我们还将为您提供一…

数据分析Pandas专栏---第十三章<Pandas训练题(初)>

前言: 写这篇是为了弄一个富有挑战性的Pandas练习题库,涵盖了许多常见和实用的数据处理问题。通过解决这些练习,能够深入了解Pandas提供的关键功能,掌握有效处理数据的技巧和方法。 练习题库涵盖了选择特定列并创建新DataFrame、对DataFrame进…

考研数学——高数:多元函数微分法及其应用

因为复习阶段全篇很细节的写下来一来比较费时间,二容易导致为了记笔记而记。 接下来的内容只会保留上课中比较有意义的地方,以及有自己助于理解的想法 全微分 助记: 证明是否可微,首先判断两个偏导数是否存在,不存在则…

中文版国产Figma简单好上手

在过去的两年里,国内外协同办公室发展迅速。一方面,它是由突如其来的疫情推动的,另一方面,它是科学技术不断进步的必然结果。在市场的推动下,市场上出现了越来越多的协同办公软件,使工作场所的工作更加高效…

插入排序和归并排序

插入排序&#xff0c;Insertion Sort. 给出伪代码 for i 1,2,...,n-1Insert A[i] into Sorted array A[0:i-1]by swaping down to the correct position. 冒泡排序 冒泡排序就是一种插入排序算法。 i ← 1 while i < length(A)j ← iwhile j > 0 and A[j-1] > A…

POST和GET传值的方法

区别&#xff1a; 1. Get是从服务器上获取数据&#xff0c;Post是向服务器传送数据。 2. Get是把参数数据队列加到提交表单的action属性所指的url中 值和表单内各个字段一一对应&#xff0c;在url中可以看到。Post是通过http中的 Post机制&#xff0c;将表单内各个字段与其内…

CorelDRAW2024专业级图形设计矢量图形设计软件

CorelDRAW2024是一款功能强大的矢量图形设计软件&#xff0c;适用于专业级图形设计作品的设计师和创作者。它提供了智能对象、布局、插图和模板等功能&#xff0c;可以帮助用户快速创建高质量的设计作品。 这款软件的用户界面直观且易于使用&#xff0c;允许用户快速访问和管理…