javaee---IO代码练习

news2024/9/25 1:22:19

实现一个小程序要求: 扫描指定目录,并找到名称中包含指定字符的所有普通文件(不包含目录),并且要求询问用户是否要删除这个文件

代码示例

public static void main(String[] args) {
        //1.先让用户指定一个要扫描的目录
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入您要扫描的目录: ");
        String path = scanner.next();
        //判断一下用户输入的目录是否是合法目录
        File rootPath = new File(path);
        if(!rootPath.isDirectory()) {
            System.out.println("您输入的目录非法!请检查后重新输入");
            return;
        }
        //2.再让用户指定一个要查询的关键词
        System.out.println("请输入要查询的关键词: ");
        String word = scanner.next();
        //3.可以进行递归扫描了
        scanDir(rootPath,word);
    }

    private static void scanDir(File rootPath, String word) {
        //1.先列出rootPath中所有的文件和目录
        File[] files = rootPath.listFiles();
        //System.out.println(Arrays.toString(files));
        if(files == null) {
            return;
        }
        //2.针对数组中的文件做出相应的处理
        for(File f : files) {
            //加个打印日志
            //记录当前扫描到哪个位置
            System.out.println("当前扫描到文件: " + f.getAbsoluteFile());
            if(f.isFile()) {
                //是普通文件,检查文件是否需要删除
                checkDelete(f,word);
            } else {
                //是目录
                //继续递归的搜索
                scanDir(f, word);
            }
        }
    }

    private static void checkDelete(File f, String word) {
        if(!f.getName().contains(word)) {
            //表示当前的文件不需要删除
            return;
        }
        System.out.println("当前的文件为" + f.getAbsolutePath()+"请确认是否要删除(Y/N)");
        Scanner scanner = new Scanner(System.in);
        String s = scanner.next();
        if(s.equals("Y") || s.equals("y")) {
            //表示当前的文件需要删除
            f.delete();
            System.out.println("删除完毕!");
        } else {
            //表示当前的文件不需要删除
            System.out.println("取消删除");
        }
     }

结果测试
在这里插入图片描述
我们可以根据代码运行的结果查看到,递归查找代码的每一个文件
在这里插入图片描述
查找完111紧接着查找222和333

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

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

相关文章

振弦式位移计主要应用在哪些工程领域

随着科技的不断发展,工程建设的规模和复杂度也在逐步提升,因此对于工程安全性的要求也日益增高。在这一背景下,振弦式位移计作为一种先进的测量工具,逐渐在工程安全监测领域得到了广泛的应用。本文将详细介绍振弦式位移计的原理、…

企企通入选第一新声《2024年中国CIO数字化产品选型白皮书》供应链数字产品可信名录

近日,第一新声研究院根据多年产业数字化研究,历经近半年时间,并综合近200位CIO调研与推荐意见,发布《2024年中国CIO数字化产品选型白皮书》,并推出企业CIO选型指南及可信产品名录。企企通凭借其优秀的采购数字化与供应…

【VTKExamples::Utilities】第六期 DataAnimation

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例DataAnimation,并解析接口vtkProgrammableFilter,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U…

Vue 组件生命周期:探索钩子

title: Vue 组件生命周期:探索钩子 date: 2024/5/27 18:42:38 updated: 2024/5/27 18:42:38 categories: 前端开发 tags: 生命周期异步加载通信原理父子通信兄弟通信跨层通信性能优化 第 1 章:介绍与背景 1.1 什么是 Vue 组件生命周期? …

小程序大能量:盲盒平台搭建与营销策略

一、引言 在移动互联网的浪潮下,小程序以其轻量级、即用即走的特点,成为了商家与消费者沟通的新桥梁。盲盒经济作为近年来兴起的消费趋势,结合小程序平台,不仅为用户带来了全新的购物体验,也为商家带来了更多的商业机…

unity知识点 专项二 DoTween动画

一、 动画序列(Sequence) 1.1 动画序列相关api 解释 sequence.Append(Tween tween) // 添加一个动画到序列末尾。 sequence.AppendCallback(TweenCallback callback) // 添加回调函数到序列末尾。 sequence.AppendInterval(float interval) // 添加一段…

考试“挂了“用日语怎么说,柯桥商务日语培训

1、もえる 热衷于……,燃烧 除了“燃烧”,还有“热衷于……”的意思,如“家が燃える(房子着火了)”,“勉強に燃える(热衷于学习)”。 A:今(いま&…

重磅,下一代 iOS 迎来重大更新,国行或无缘

iOS 18 近日,海外记者爆料,苹果已与 OpenAI 达成协议,将聊天机器人 ChatGPT 集成到 iOS 18,双方的合作伙伴关系预计将于 WWDC 2024 上官宣。 作为全球供应链大师的苹果,自然也会把「硬件」的一套带到「软件」当中&…

公告:关于博主的重要通知

大家好,我是博主夏目。 本期不分享知识,博主想说明一下博主的一些重要提示。 分享的内容,从不收费,也未向任何人进行收费。 意在分享知识,传播文化,结交更多志同道合的朋友。 截至目前,从未…

企业数据资产入表之数据资产管理【AMT企源】

题记: 近几年以来,我国数字经济占GDP的比重逐年提高,数据资源在经济发展中的重要作用愈发凸显。在数字时代,数据是新型生产要素,也是企业未来的战略性资源。数据驱动创新,驱动经济提质增效,催化…

R包Colorfindr识别图片颜色|用刀剑神域方式打开SCI科研配色

1.前言 最近忙里偷闲,捣鼓一下配色,把童年回忆里的动漫都搬进来,给科研信仰充值吧~ 提取颜色之前写过一个Py的,那个很准确不过调参会有点麻烦。这里分享一个比较懒人点的R包吧,虽然会有一定误差&#xff…

【JavaScript】P3 JavaScipt 注释方法、结束符、输入输出

小结: Js 注释: 单行注释://多行注释:/* */ Js 结束符: 分号; 可以加也可以不加 Js 输入输出: 输入:prompt()输出:document.write() 在页面中打印,console.log() 在控制…

【教程】PaddleOCR高精度文字识别

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ PaddleOCR/doc/doc_ch/quickstart.md at main PaddlePaddle/PaddleOCR GitHub 安装 pip install paddlepaddle -i https://mirror.baidu.com/pypi/s…

【全开源】Java养老护理助浴陪诊小程序医院陪护陪诊小程序APP源码

打造智慧养老服务新篇章 一、引言:养老护理的数字化转型 随着老龄化社会的到来,养老护理需求日益凸显。为了更好地满足老年人及其家庭的需求,我们推出了养老护理助浴陪诊小程序系统源码。该系统源码旨在通过数字化技术,优化养老…

MGR集群模拟故障切换

说明: 1、MGR集群搭建起来,但不知道是否能进行启动切换,故要手动模拟故障并且验证 2、停止主库master服务,登录mysql查看MGR是否进行自动切换。 3、主库切换完成以后,手动将宕机的服务器添加到MGR集群中。 一、模拟故障…

常用有限元仿真工作站服务器推荐

1、超强性能,AMD 256核心,512线程,768GB满通道内存 CPU:2颗128核心 2.25GHz AMD EPYC 9754 内存:24根32GB DDR5 4800MHz ECC REG 硬盘:1块3.84TB U.2 SSD系统盘1块 16TB SATA数据盘 GPU:1块…

Android刮刮卡自定义控件

效果图 刮刮卡自定义控件 import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.graphics.PorterDuff; import …

2.开发环境介绍

开发环境介绍三种:第一种是在线开发环境、第二种是Windows下的开发环境、第三种是Linux下的开发环境。 1.在线开发环境 2.Windows下的开发环境 用的比较多的是Devc,新手适合使用,上手快,简单,方便。 Devc使用&#x…

Pushmall共享分销电商SaaS版2024年 5月模块开发优化完成

Pushmall共享分销电商 2024年 5月模块开发优化完成 1、**实现SaaS框架业务:**多租户、多商家、多门店,及商家入驻、商品管理。 2、租户小程序管理:对租户的小程序业务管理。 3、店铺小程序管理:对租户多店铺小程序绑定。 4、会员分…

机会就在眼前!2025-CISP深圳国际体育展的招展工作火热持续中...

2025-CISP中国(深圳)国际体育展的招展工作火热持续中,凭借越来越深远的影响力以及前两届的成功举办经验,展位多半已被“抢购”。但小编的同事们同时又反映出一个问题:有一批老展商和新展商已有明确的参展意向&#xff…