[文件IO]文件操作的几个笔试题

目录

1.扫描指定目录,找到要查询的文件名,并询问用户是否要删除

2. 文件的复制

3.扫描指定目录,并找到名称或者内容中包含指定字符的所有普通文件(不包含目录)


1.扫描指定目录,找到要查询的文件名,并询问用户是否要删除

我们先来看一下题目描述

扫描指定目录,并找到名称中包含指定字符的所有普通文件(不包含目录),并且后续询问用户是否要删除该文件

 看到题目以后,理清思路。首先扫描目录找到文件这种操作,和二叉树类似,得用递归来写。

 public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入目标目录");String drty = scanner.next();System.out.println("请输入要查找的文件名");String word = scanner.next();File file = new File(drty);if(!file.isDirectory()){System.out.println("输入的路径有误差");return;}func(file,word);}private static void func(File rootFile, String fileName) {Scanner scanner = new Scanner(System.in);File[] files = rootFile.listFiles();if(files == null){return;}for (File s:files){System.out.println("当前遍历到: " + s.getAbsolutePath());if(s.isFile()) {if (fileName.equals(s.getName())) {System.out.println("是否删除该文件,是的话输入1,不是输入0" + s.getAbsolutePath());int n =scanner.nextInt();if(n == 1 ){s.delete();System.out.println("删除成功");return;}else {break;}}}else if (s.isDirectory()) {func(s, fileName);} else {;}}

2. 文件的复制

直接就是先通过字节流的read()方法,把目标文件的内容通过字节数组给读出来,然后写入到我们创建的文件里

public static void main(String[] args) throws IOException {Scanner scanner = new Scanner(System.in);System.out.println("请输入要复制的文件");String copy = scanner.next();File fileCopy = new File(copy);fileCopy.createNewFile();System.out.println("请输入目标文件");String target = scanner.next();File filetarget = new File(target);if(!filetarget.isFile()){System.out.println("输入的不是文件,请重试");return;}func(fileCopy,filetarget);}private static void func(File fileCopy, File filetarget) {try (InputStream inputStream = new FileInputStream(filetarget);OutputStream outputStream =new FileOutputStream(fileCopy) ){while (true){byte[] bytes = new byte[1024];System.out.println(bytes.length);int n = inputStream.read(bytes);if( n == -1){break;}outputStream.write(bytes,0,n);}}  catch (IOException e) {throw new RuntimeException(e);}}

我们一开始有一个图片1.jpg

然后我们创建一个2.jpg把文件给复制过去看看效果

效果

可以看到文件被成功的复制下来了

3.扫描指定目录,并找到名称或者内容中包含指定字符的所有普通文件(不包含目录)

结合题目一和题目二来写

import java.io.*;
import java.util.Scanner;public class Test3 {//扫描指定目录,并找到名称或者内容中包含指定字符的所有普通文件(不包含目录)public static void main(String[] args) throws IOException {System.out.println("请输入要扫描的目录");Scanner scanner = new Scanner(System.in);String directory = scanner.next();File file = new File(directory);if(!file.isDirectory()){System.out.println("不是目录");return;}System.out.println("请输入要扫描的字符");String work = scanner.next();func(file,work);}private static void func(File file, String work) throws IOException {File[] files =file.listFiles();if(files == null){return;}for (File f: files){//System.out.println("当前遍历到"+f.getAbsolutePath());if(f.isFile()){Reader reader = new FileReader(f);while (true) {char[] ch = new char[1024];int n = reader.read(ch);if (n == -1) {break;}StringBuilder stringBuilder = new StringBuilder();for (int i = 0; i < n; i++) {stringBuilder.append(ch[i]);}String str = stringBuilder.toString();if (str.contains(work)) {System.out.println("找到了该文件" + f.getAbsolutePath());}}} else if (f.isDirectory()) {func(f,work);}else {}}}
}

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

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

相关文章

Hardware-Aware-Transformers开源项目笔记

文章目录 Hardware-Aware-Transformers开源项目笔记开源项目背景知识nas进化算法进化算法代码示例 开源项目Evolutionary Search1 生成延迟的数据集2 训练延迟预测器3 使延时约束运行搜索算法4. 训练搜索得到的subTransformer5. 根据重训练后的submodel 得到BLEU精度值 代码结构…

医学图像的图像处理、分割、分类和定位-1

一、说明 本报告全面探讨了应用于医学图像的图像处理和分类技术。开展了四项不同的任务来展示这些方法的多功能性和有效性。任务 1 涉及读取、写入和显示 PNG、JPG 和 DICOM 图像。任务 2 涉及基于定向变化的多类图像分类。此外&#xff0c;我们在任务 3 中包括了胸部 X 光图像…

java数据结构与算法刷题-----LeetCode977. 有序数组的平方

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 时间复杂度 空间复杂度 O(n * l o g 2 n log_2{n} log2​…

PyTorch 中的距离函数深度解析:掌握向量间的距离和相似度计算

目录 Pytorch中Distance functions详解 pairwise_distance 用途 用法 参数 数学理论公式 示例代码 cosine_similarity 用途 用法 参数 数学理论 示例代码 输出结果 pdist 用途 用法 参数 数学理论 示例代码 总结 Pytorch中Distance functions详解 pair…

JVM工作原理与实战(十九):运行时数据区-方法区

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、运行时数据区 二、方法区 1.方法区介绍 2.方法区在Java虚拟机的实现 3.类的元信息 4.运行时常量池 5.字符串常量池 6.静态变量的存储 总结 前言 JVM作为Java程序的运行环境…

App分发测试平台:改变应用开发的游戏规则

App分发测试平台是一个提供应用开发者上传、测试、分享和发布应用的在线服务平台。它为开发者提供了一个高效的测试环境&#xff0c;并为用户提供了一个方便的应用获取渠道。其中&#xff0c;测试环节尤为关键&#xff0c;因为它能够确保应用在上线之前达到预期的功能和性能。 …

问题:Feem无法发送信息OR无法连接(手机端无法发给电脑端)

目录 前言 问题分析 资源、链接 其他问题 前言 需要在小米手机、华为平板、Dell电脑之间传输文件&#xff0c;试过安装破解的华为电脑管家、小米的MIUI文件传输等&#xff0c;均无果。&#xff08;小米“远程管理”ftp传输倒是可以&#xff0c;但速度太慢了&#xff0c;且…

Java JVM 堆、栈、方法区详解

目录 1. 栈 2. 堆 3. 方法区 4. 本地方法栈 5. 程序计数器 首先来看一下JVM运行时数据区有哪些。 1. 栈 在介绍JVM栈之前&#xff0c;先了解一下 栈帧 概念。 栈帧&#xff1a;一个栈帧随着一个方法的调用开始而创建&#xff0c;这个方法调用完成而销毁。栈帧内存放者方…

ROS学习笔记8——实现ROS通信时的常用命令

机器人系统中启动的节点少则几个&#xff0c;多则十几个、几十个&#xff0c;不同的节点名称各异&#xff0c;通信时使用话题、服务、消息、参数等等都各不相同&#xff0c;一个显而易见的问题是: 当需要自定义节点和其他某个已经存在的节点通信时&#xff0c;如何获取对方的话…

gitgud.io+Sapphire注册账号教程

gitgud.io是一个仓库&#xff0c;地址 https://gitgud.io/&#xff0c;点进去之后会看到注册页面。 意思是需要通过注册这个Sapphire账户来登录。点击右边的Sapphire&#xff0c;就跳转到Sapphire的登陆页面&#xff0c;点击创建新账号&#xff0c;就进入注册页面。&#xff0…

SpiderFlow爬虫平台漏洞利用分析(CVE-2024-0195)

1. 漏洞介绍 SpiderFlow爬虫平台项目中spider-flow-web\src\main\java\org\spiderflow\controller\FunctionController.java文件的FunctionService.saveFunction函数调用了saveFunction函数&#xff0c;该调用了自定义函数validScript&#xff0c;该函数中用户能够控制 functi…

Spring | Spring中的Bean--下

Spring中的Bean: 4.Bean的生命周期5.Bean的配装配式 ( 添加Bean到IOC容器的方式 依赖注入的方式 )5.1 基于XML的配置5.2 基于Annotation (注解) 的装配 (更常用&#xff09;5.3 自动装配 4.Bean的生命周期 Spring容器可以管理 singleton作用域的Bean的生命周期&#xff0c;在此…

go语言(七)----slice的声明方式

1、声明方式一 //声明一个slice1是一个切片&#xff0c;但是并没有给slice分配空间var slice1 []intslice1 make([]int,3)2、声明方式二 声明一个slice切片&#xff0c;同时给slice分配空间&#xff0c;3个空间&#xff0c;初始化值是0var slice1 []int make([]int,3)3、声…

ICCV2023 | PTUnifier+:通过Soft Prompts(软提示)统一医学视觉语言预训练

论文标题&#xff1a;Towards Unifying Medical Vision-and-Language Pre-training via Soft Prompts 代码&#xff1a;https://github.com/zhjohnchan/ptunifier Fusion-encoder type和Dual-encoder type。前者在多模态任务中具有优势&#xff0c;因为模态之间有充分的相互…

从临床和科研场景分析ChatGPT在医疗健康领域的应用可行性

2023年4月发表在Journal Medical Systems的文献《Evaluating the Feasibility of ChatGPT in Healthcare: An Analysis of Multiple Clinical and Research Scenarios》&#xff08;评估 ChatGPT 在医疗健康领域的可行性&#xff1a;对多种临床和研究场景的分析&#xff09;介绍…

IPv6自动隧道---6to4中继

6to4中继 普通IPv6网络需要与6to4网络通过IPv4网络互通,这可以通过6to4中继路由器方式实现。所谓6to4中继,就是通过6to4隧道转发的IPv6报文的目的地址不是6to4地址,但转发的下一跳是6to4地址,该下一跳为路由器我们称之为6to4中继。隧道的IPv4目的地址依然从下一跳的6to4地…

PPT 编辑模式滚动页面不居中

PPT 编辑模式滚动页面不居中 目标&#xff1a;编辑模式下适应窗口大小、切换页面居中显示 调整视图大小&#xff0c;编辑模式通过Ctrl 鼠标滚轮 或 在视图菜单中点击适应窗口大小。 2. 翻页异常&#xff0c;调整视图大小后&#xff0c;PPT翻页但内容不居中或滚动&#xff0c…

『MySQL快速上手』-⑩-索引特性

文章目录 1.索引的作用2.索引的理解建立测试表插入多条记录查看结果 2.1 MySQL与磁盘交互的基本单位2.1 为何IO交互要是 Page2.3 理解单个Page2.4 理解多个Page2.5 页目录2.6 单页情况2.7 多页情况2.8 B vs B2.9 聚簇索引 vs 非聚簇索引非聚簇索引聚簇索引 3.索引操作3.1 创建主…

pytest + allure(windows)安装

背景 软硬件环境&#xff1a; windows11&#xff0c;已安装anaconda&#xff0c;python&#xff0c;pycharm用途&#xff1a;使用pytest allure 生成报告allure 依赖java&#xff0c;点击查看java安装教程 allure 下载与安装 从 allure下载网址下载最新版本.zip文件 放在自…

基于YOLOv8深度学习的葡萄簇目标检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…