JavaEE-文件IO操作





构造方法

一般方法,有很多,我们以下只是列举几个经常使用的


注意在上述的操作过程中,无论是绝对路径下的这个文件还是相对路径下的这个文件,都是不存在的













Reader 使用 --> 文本文件

FileReader类所涉及到的一些方法



FileInPutStream的使用,和FileReader的使用很类似

我们可以通过String类的构造方法,将内容输出






整体思路:
用户指定目录 --> 用户输入一个关键词 --> 遍历目录
列出当前目录中有哪些内容,我们想要的内容主要是普通文件 —> 开始遍历目录中的文件,这里分为files为普通文件和子目录两种情况 --> 如果是文件,看其中是否包含是关键词 I 如果是目录,就递归执行sacnDir
判断当前文件名中是否包含word --> 如果包含,则向用户发出请求是否要删除该文件
所有代码如下:
package file;import java.io.File;
import java.util.Scanner;//遍历指定目录,并询问用户是否删除关键字命名的普通文件
public class Demo10 {public static Scanner scanner=new Scanner(System.in);public static void main(String[] args) {//1.用户指定目录System.out.println("请输入需要查找的根目录");//封装为一个文件类File rootpath=new File(scanner.next());//2.让用户输入一个关键词System.out.println("请输入一个关键词");String word=scanner.next();//3.判断当前输入的目录是否有效if(!rootpath.isDirectory()){System.out.println("当前输入的目录非法");return;}//4 遍历目录scanDir(rootpath,word);}public static void scanDir(File currentDir,String word){//这里以深度优先的方式遍历目录,主要体现为递归//1.列出当前目录中有哪些内容,我们想要的内容主要是普通文件File[] files=currentDir.listFiles();if(files==null || files.length==0){//目录为空或者非法的目录(文件)return;}//2.开始遍历目录中的文件,这里分为files为普通文件和子目录两种情况for (File f:files) {//添加一个日志,方便查看执行过程System.out.println(f.getAbsoluteFile());if(f.isFile()){//如果是文件,看其中是否包含是关键词dealFile(f,word);} else{//如果是目录,就递归执行sacnDirscanDir(f,word);}}}private static void dealFile(File f,String word){//1 判断当前文件名中是否包含wordif(!f.getName().contains(word)){//不包含,则不做任何处理return;}//2.如果包含,则向用户发出请求是否要删除该文件System.out.println("找到了包含"+ word + "的文件"+ f.getAbsolutePath() + "是否需要删除?(Y/N)");String s=scanner.next();if(s.equals("Y") || s.equals("y")){f.delete();}//用户输入其它值,则忽略}
}
效果如下:


代码如下:
package file;import java.io.*;
import java.util.Scanner;
//复制文件
public class Demo11 {public static void main(String[] args) throws IOException {//1 输入源文件路径和目的文件路径并进行合法性判断Scanner scanner=new Scanner(System.in);System.out.println("请输入要复制文件的路径");File srcFile=new File(scanner.next());if(!srcFile.isFile()){System.out.println("输入的源文件路径非法");return;}System.out.println("请输入目标路径");File destFile=new File(scanner.next());//不要求目标文件本身存在,但是要求目标文件的路径是正确的if(!destFile.getParentFile().isDirectory()){System.out.println("目标文件路径非法");return;}//2 分别打开两个文件,从源文件中读取数据,将其写入目标文件中,循环直至源文件的数据读取完毕//使用字节流方式try(InputStream inputStream=new FileInputStream(srcFile);OutputStream outputStream=new FileOutputStream(destFile) ){while(true){byte[] buf=new byte[10];int n=inputStream.read(buf);if(n==-1){break;}outputStream.write(buf,0,n);}}}
}
结果如下:

相关文章:
JavaEE-文件IO操作
构造方法 一般方法,有很多,我们以下只是列举几个经常使用的 注意在上述的操作过程中,无论是绝对路径下的这个文件还是相对路径下的这个文件,都是不存在的 Reader 使用 --> 文本文件 FileReader类所涉及到的一些方法 Fil…...
二蛋赠书四期:《Go编程进阶实战:开发命令行应用、HTTP应用和gRPC应用》
前言 大家好!我是二蛋,一个热爱技术、乐于分享的工程师。在过去的几年里,我一直通过各种渠道与大家分享技术知识和经验。我深知,每一位技术人员都对自己的技能提升和职业发展有着热切的期待。因此,我非常感激大家一直…...
MySQL数据库基本操作-DQL-排序查询
介绍 如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 order by 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。 语法 select 字段名1,字段名2,…… from 表名 order by 字段名1 [asc|desc]…...
这是一篇测试文章
这是一篇测试文章这是一篇测试文章这是一篇测试文章这是一篇测试文章这是一篇测试文章这是一篇测试文章这是一篇测试文章这是一篇测试文章这是一篇测试文章这是一篇测试文章这是一篇测试文章这是一篇测试文章这是一篇测试文章这是一篇测试文章这是一篇测试文章这是一篇测试文章…...
Ubuntu plt画图 新罗马字体网格marker刻度朝内
* 字体文件:坚果云下code包,新罗马字体 参考链接:Linux下Matplotlib画图New Times Roman字体设置 - 知乎 * 刻度朝内 plt.rcParams[font.sans-serif] [Times New Roman]plt.rcParams[xtick.direction]in#设置x轴刻度向内plt.rcParams[ytic…...
flutter布局中的一些细节
前言 记录flutter使用中遇到的一些细节和坑,希望能帮助到大家 Column中不能直接嵌套ListView, (需要指定ListView的高度或者加上shrinkWrap: true属性)需要限制button的大小,可以在外部嵌套一个Container或SizedBox来限制在List…...
论文解析——AMD EPYC和Ryzen处理器系列的开创性的chiplet技术和设计
ISCA 2021 摘要 本文详细解释了推动AMD使用chiplet技术的挑战,产品开发的技术方案,以及如何将chiplet技术从单处理器扩展到多个产品系列。 正文 这些年在将SoC划分成多个die方面有一系列研究,MCM的概念也在不断更新,AMD吸收了…...
第二证券:汽车产业链股活跃,恒勃股份、博俊科技“20cm”涨停
轿车产业链股9日盘中走势活跃,截至发稿,恒勃股份、博俊科技“20cm”涨停,德迈仕涨超17%,上声电子涨超14%,川环科技涨超10%,圣龙股份、科华控股、沪光股份、上海沿浦、日盈电子、赛力斯等均涨停。 工作方面…...
孙帅Spring源码
【视频来源于:B站up主孙帅suns Spring源码视频】【微信号:suns45】...
jenkins工具系列 —— 插件 使用Changelog获取commit记录
文章目录 安装changelog插件重启jenkins配置 ChangelogExecute shell 使用 changelog邮件中html格式也可以使用构建测试(查看构建项 -> 控制台输出) 安装changelog插件 插件文件可通过 V 获取 点击 左侧的 Manage Jenkins —> Plugins ——> …...
【JavaScript】浅拷贝与深拷贝
引言 浅拷贝、深拷贝是对引用类型而言的。 引用类型的变量对应一个栈区地址,这个栈区地址处存储的值是存放的真正的数据的堆区地址。 基本数据类型的变量也对应一个栈区地址,但是该地址存储的是其真正的值。 let a b发生了什么? let obj…...
如何下载IEEE Journal/Conference/Magazine的LaTeX/Word模板
当你准备撰写一篇学术论文或会议论文时,使用IEEE(电气和电子工程师协会)的LaTeX或Word模板是一种非常有效的方式,它可以帮助你确保你的文稿符合IEEE出版的要求。无论你是一名研究生生或一名资深学者,本教程将向你介绍如…...
nvidia 驱动问题
https://stackoverflow.com/questions/43022843/nvidia-nvml-driver-library-version-mismatch https://zhuanlan.zhihu.com/p/643773939...
PDF编辑和OCR文字识别工具ABBYY FineReader PDF
ABBYY FineReader PDF是一款专业的OCR文字识别和PDF编辑工具,可以帮助用户更好地处理和管理PDF文档。以下是ABBYY FineReader PDF的一些特点: 1. 文字识别精准:ABBYY FineReader PDF具有强大的OCR文字识别功能,可以将PDF中的文字…...
什么是网络流量监控
随着许多服务迁移到云,网络基础架构的维护变得复杂。虽然云采用在生产力方面是有利的,但它也可能让位于未经授权的访问,使 IT 系统容易受到安全攻击。 为了确保其网络的安全性和平稳的性能,IT 管理员需要监控用户访问的每个链接以…...
ubuntu 终端 中文显示unicode码、乱码
Ubuntu默认的中文字符编码 locale命令查看 LANG 等参数是否无UTF-8等参数?比如 为空? Ubuntu默认的中文字符编码为zh_CN.UTF-8,这个可以在 /etc/environment中看到: sudo gedit /etc/environment 可以看到如下内容: P…...
作用域理解
概念:它是指对某一变量和方法具有访问权限的代码空间, 在JS中, 作用域是在函数中维护的。表示变量 或函数起作用的区域,指代了它们在什么样的上下文中执行,亦即上下文执行环境。 ES5的作用域只有两种:全局作用域和局部作用域 全局作用域 var a1; //全局作用域 function fn1(…...
Stream 流式编程创建及其常用操作方法
目录 Stream 对象如何创建 Stream 常用的操作方法 1.过滤(Filter) 2.映射(Map) 3.扁平映射(FlatMap) 4.截断(Limit) 5.跳过(Skip) 6.排序(…...
Can 通信-协议
概述 CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO国际标准化的串行通信协议。 在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统 被开发了出来。由于…...
rustlings本地开发环境配置
克隆自己的仓库 首先我们要在github上找到自己仓库并把它克隆到本地 git clone https://github.com/LearningOS/rust-rustlings-2023-autumn-******.git下载插件 rust-analyzer和Git Graph一个可以用来解析rust代码,另一个可以可视化管理git代码库 下载rustling…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
