commons-io工具类常用方法
commons-io是Apache Commons项目的一个模块,提供了一系列处理I/O(输入/输出)操作的工具类和方法。它旨在简化Java I/O编程,并提供更多的功能和便利性。
读取文件内容为字符串
String path="C:\\Users\\zhang\\Desktop\\myyii\\demo\\src\\main\\resources\\test.txt";// 读取整个文件字符为一个字符串System.out.println(FileUtils.readFileToString(new File(path), StandardCharsets.UTF_8));// llls// www// pwd// 你们
读取文件内容为List
String path="C:\\Users\\zhang\\Desktop\\myyii\\demo\\src\\main\\resources\\test.txt";// 读取整个文件字符为一个字符串List<String> list = FileUtils.readLines(new File(path), StandardCharsets.UTF_8);for (String s : list) {System.out.println(s);// llls// www// pwd// 你们}
获取文件属性
String path="C:\\Users\\zhang\\Desktop\\myyii\\demo\\src\\main\\resources\\test.txt";// 获取文件名testSystem.out.println(FilenameUtils.getBaseName(path)); // test// 获取文件后缀System.out.println(FilenameUtils.getExtension(path)); // txt
文件操作
复制文件
String path="C:\\Users\\zhang\\Desktop\\myyii\\demo\\src\\main\\resources\\test.txt";String targetPath="C:\\Users\\zhang\\Desktop\\myyii\\demo\\src\\main\\resources\\test_copy.txt";File file = new File(path);File targetFile = new File(targetPath);FileUtils.copyFile(file, targetFile);
移动文件
String path="C:\\Users\\zhang\\Desktop\\myyii\\demo\\src\\main\\resources\\test.txt";String targetPath="C:\\Users\\zhang\\Desktop\\myyii\\demo\\src\\main\\resources\\test_copy.txt";File file = new File(path);File targetFile = new File(targetPath);FileUtils.moveFile(file, targetFile);
安静地删除文件
String path="C:\\Users\\zhang\\Desktop\\myyii\\demo\\src\\main\\resources\\test.txt";File file = new File(path);FileUtils.deleteQuietly(file);
获取指定目录下特定扩展名的所有文件
String path = "C:\\Users\\zhang\\Desktop\\myyii\\demo\\src\\main\\resources";String[] extensions = new String[]{"jpg", "png", "avi"};File file = new File(path);// 第一个参数是要列出文件的目录,第二个参数是扩展名数组用于筛选文件,第三个参数是一个布尔值,用于指定是否包括子目录中的文件。List<File> fileList = (List<File>) FileUtils.listFiles(file, extensions, true);for (File f : fileList) {System.out.println("找到文件:" + f.getAbsolutePath());}
流操作
复制流
InputStream inputStream = null;OutputStream outputStream = null;try {inputStream = new FileInputStream("C:\\Users\\zhang\\Desktop\\myyii\\demo\\src\\main\\resources\\test.txt");outputStream = new FileOutputStream("C:\\Users\\zhang\\Desktop\\myyii\\demo\\src\\main\\resources\\target.txt");IOUtils.copy(inputStream, outputStream);System.out.println("文件复制成功");} catch (IOException e) {e.printStackTrace();} finally {// 关闭输入流和输出流IOUtils.closeQuietly(inputStream);IOUtils.closeQuietly(outputStream);}
输入流转换为字节数组
InputStream inputStream = null;try {inputStream = new FileInputStream("C:\\Users\\zhang\\Desktop\\myyii\\demo\\src\\main\\resources\\test.txt");byte[] bytes = IOUtils.toByteArray(inputStream);// 转换为字符串String content = new String(bytes, "UTF-8");System.out.println(content);} catch (IOException e) {e.printStackTrace();} finally {IOUtils.closeQuietly(inputStream);}
文件过滤器
并逻辑过滤器
// 创建两个文件过滤器FileFilter filter1 = FileFilterUtils.suffixFileFilter(".txt");FileFilter filter2 = FileFilterUtils.sizeFileFilter(1024);// 创建同时满足两个条件的过滤器FileFilter combinedFilter = FileFilterUtils.and((IOFileFilter) filter1, (IOFileFilter) filter2);// 获取指定目录下满足过滤条件的文件File dir = new File("C:\\Users\\zhang\\Desktop\\myyii\\demo\\src\\main\\resources");File[] files = dir.listFiles(combinedFilter);// 遍历符合条件的文件for (File file : files) {System.out.println(file.getName());}
或逻辑过滤器
// 创建两个文件过滤器FileFilter filter1 = FileFilterUtils.suffixFileFilter(".txt");FileFilter filter2 = FileFilterUtils.sizeFileFilter(1024);// 创建同时满足两个条件的过滤器FileFilter combinedFilter = FileFilterUtils.or((IOFileFilter) filter1, (IOFileFilter) filter2);// 获取指定目录下满足过滤条件的文件File dir = new File("C:\\Users\\zhang\\Desktop\\myyii\\demo\\src\\main\\resources");File[] files = dir.listFiles(combinedFilter);// 遍历符合条件的文件for (File file : files) {System.out.println(file.getName());}
文件后缀过滤器
// 创建一个文件后缀过滤器String suffix = ".txt";FileFilter filter = FileFilterUtils.suffixFileFilter(suffix);File dir = new File("C:\\Users\\zhang\\Desktop\\myyii\\demo\\src\\main\\resources");File[] files = dir.listFiles(filter);// 遍历符合条件的文件for (File file : files) {System.out.println(file.getName());}
字节操作
输入流中读取数据到字节数组
// 创建一个字节数组作为缓冲区byte[] buffer = new byte[1024];// 从输入流中读取数据并存储到缓冲区InputStream input = new FileInputStream("C:\\Users\\zhang\\Desktop\\myyii\\demo\\src\\main\\resources\\test.txt");int bytesRead = IOUtils.read(input, buffer);// 关闭输入流IOUtils.closeQuietly(input);// 处理读取到的数据System.out.println("实际读取的字节数: " + bytesRead);System.out.println("读取的数据: " + new String(buffer, 0, bytesRead));
将字节数组写入输出流
// 创建一个字节数组作为数据byte[] data = "Hello, world!".getBytes();// 创建一个输出流,并将字节数组写入到该流中OutputStream output = new FileOutputStream("C:\\Users\\zhang\\Desktop\\myyii\\demo\\src\\main\\resources\\test1.txt");IOUtils.write(data, output);// 关闭输出流IOUtils.closeQuietly(output);
目录操作
强制创建目录
File directory = new File("path/to/directory");FileUtils.forceMkdir(directory);
相关文章:
commons-io工具类常用方法
commons-io是Apache Commons项目的一个模块,提供了一系列处理I/O(输入/输出)操作的工具类和方法。它旨在简化Java I/O编程,并提供更多的功能和便利性。 读取文件内容为字符串 String path"C:\\Users\\zhang\\Desktop\\myyii\…...
【Typescript】面向对象(上篇),包含类,构造函数,继承,super,抽象类
假期第七篇,对于基础的知识点,我感觉自己还是很薄弱的。 趁着假期,再去复习一遍 面向对象:程序中所有的操作都需要通过对象来完成 计算机程序的本质就是对现实事物的抽象,抽象的反义词是具体。比如照片是对一个具体的…...
【python】python中字典的用法记录
文章目录 序言1. 字典的创建和访问2. 字典如何添加元素3. 字典作为函数参数4. 字典排序 序言 总结字典的一些常见用法 1. 字典的创建和访问 字典是一种可变容器类型,可以存储任意类型对象 key : value,其中value可以是任何数据类型,key必须…...
基于Java的大学生心理咨询系统设计与实现(源码+lw+部署文档+讲解等)
文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…...
Redis-双写一致性
双写一致性 双写一致性解决方案延迟双删(有脏数据的风险)分布式锁(强一致性,性能比较低)异步通知(保证数据的最终一致性,高并发情况下会出现短暂的不一致情况) 双写一致性 当修改了数…...
CustomTkinter:创建现代、可定制的Python UI
文章目录 介绍安装设置外观与主题外观模式主题设置自定义主题颜色窗口缩放CTkFont字体设置CTkImage图片Widgets窗口部件CTk Windows窗口CTk窗口CTkInputDialog对话框CTkToplevel顶级窗口布局pack布局palce布局Grid 网格布局Frames 框架Frames滚动框架...
华为OD机试真题【不含 101 的数】
1、题目描述 【不含 101 的数】 【题目描述】 小明在学习二进制时,发现了一类不含 101的数,也就是: 将数字用二进制表示,不能出现 101 。 现在给定一个整数区间 [l,r] ,请问这个区间包含了多少个不含 101 的数&#…...
Spring IoC和DI详解
IOC思想 IoC( Inversion of Control,控制反转) 不是一门具体技术,而是一种设计思想, 是一种软件设计原则,它将应用程序的控制权(Bean的创建和依赖关系)从应用程序代码中解耦出来&am…...
mysql-binlog
1. 常用的binlog日志操作命令 1. 查看bin-log是否开启 show variables like log_%;2. 查看所有binlog日志列表 show master logs;3.查看master状态 show master status;4. 重置(清空)所有binlog日志 reset master;2. 查看binlog日志内容 1、使用mysqlb…...
通过BeanFactotyPostProcessor动态修改@FeignClient的path
最近项目有个需求,要在启动后,动态修改FeignClient的请求路径,网上找到的基本都是在FeignClient里使用${…},通过配置文件来定义Feign的接口路径,这并不能满足我们的需求 由于某些特殊原因,我们的每个接口…...
数据结构与算法系列-二分查找
二分查找 什么是二分查找? 二分查找是一种针对有序集合,每次将要查找的区间缩小一半,直到找到查找元素,或区间被缩小为0。 如何实现二分查找? 实现有3个注意点: 终止条件是 low < high 2.求中点的算…...
CSS 毛玻璃特效运用目录
主要是记录毛玻璃相关的特效实践案例和实现思路。 章节名称完成度难度文章地址完整代码下载地址Glassmorphism 登录表单完成一般文章链接代码下载Glassmorphism 按钮悬停效果完成一般文章链接代码下载Glassmorphism 计算器完成一般文章链接代码下载Glassmorphism 卡片悬停效果…...
如何在Qt6中引入Network模块
2023年10月1日,周日凌晨 2023年10月2日,周一下午 第一次更新 目录 如果用的是CMakeQt Console ApplicationQt Widgets Application如果用的是qmake 如果用的是CMake find_package(Qt6 COMPONENTS Network REQUIRED) target_link_libraries(mytarget…...
2023/10/4 QT实现TCP服务器客户端搭建
服务器端: 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> #include <QTcpSocket> #include <QList> #include <QMessageBox> #include <QDebug>QT_BEGIN_NAMESPACE namespace Ui { cla…...
云原生边缘计算KubeEdge安装配置
1. K8S集群部署,可以参考如下博客 请安装k8s集群,centos安装k8s集群 请安装k8s集群,ubuntu安装k8s集群 2.安装kubEedge 2.1 编辑kube-proxy使用ipvs代理 kubectl edit configmaps kube-proxy -n kube-system #修改kube-proxy#大约在40多行…...
【LeetCode热题100】--35.搜索插入位置
35.搜索插入位置 使用二分查找: class Solution {public int searchInsert(int[] nums, int target) {int low 0,high nums.length -1;while(low < high){//注意每次循环完都要计算midint mid (low high)/2;if(nums[mid] target){return mid;}if(nums[mid]…...
mysql面试题13:MySQL中什么是异步复制?底层实现?
该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:讲一讲mysql中什么是异步复制?底层实现? MySQL中的异步复制(Asynchronous Replication)是一种复制模式,主服务器将数据写入二进制日志后,无…...
SpringBoot-Shiro安全权限框架
Apache Shiro是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密。 官网: http://shiro.apache.org/ 源码: https://github.com/apache/shiro Subject:代表当前用户或…...
PostgreSQL基础语法
当谈到关系型数据库管理系统(RDBMS)时,PostgreSQL是一个备受推崇的选择。它是一个开源的、强大的RDBMS,具有广泛的功能和支持。本文将介绍一些PostgreSQL的基础语法,以帮助您入门。 1. 安装和配置 在开始使用PostgreS…...
编程前置:处理Excel表格,定位单元格位置,输入文字前,让AI机器人知道我说什么
原提问: input输入表头 (input内除了/,空格 回车 标点符号等 全部作为单元格分隔符) 由我设置input输入的是行or列 给选项 1. 行 2. 列 默认回车或没输入值是列由我设置起始位置行列 例如 3,2 表示3行2列 当我输入3,2 就表示在第…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...
React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构
React 实战项目:微前端与模块化架构 欢迎来到 React 开发教程专栏 的第 30 篇!在前 29 篇文章中,我们从 React 的基础概念逐步深入到高级技巧,涵盖了组件设计、状态管理、路由配置、性能优化和企业级应用等核心内容。这一次&…...
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章 摘要: 操作系统内核的安全性、稳定性至关重要。传统 Linux 内核模块开发长期依赖于 C 语言,受限于 C 语言本身的内存安全和并发安全问题,开发复杂模块极易引入难以…...
