当前位置: 首页 > news >正文

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项目的一个模块&#xff0c;提供了一系列处理I/O&#xff08;输入/输出&#xff09;操作的工具类和方法。它旨在简化Java I/O编程&#xff0c;并提供更多的功能和便利性。 读取文件内容为字符串 String path"C:\\Users\\zhang\\Desktop\\myyii\…...

【Typescript】面向对象(上篇),包含类,构造函数,继承,super,抽象类

假期第七篇&#xff0c;对于基础的知识点&#xff0c;我感觉自己还是很薄弱的。 趁着假期&#xff0c;再去复习一遍 面向对象&#xff1a;程序中所有的操作都需要通过对象来完成 计算机程序的本质就是对现实事物的抽象&#xff0c;抽象的反义词是具体。比如照片是对一个具体的…...

【python】python中字典的用法记录

文章目录 序言1. 字典的创建和访问2. 字典如何添加元素3. 字典作为函数参数4. 字典排序 序言 总结字典的一些常见用法 1. 字典的创建和访问 字典是一种可变容器类型&#xff0c;可以存储任意类型对象 key : value&#xff0c;其中value可以是任何数据类型&#xff0c;key必须…...

基于Java的大学生心理咨询系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…...

Redis-双写一致性

双写一致性 双写一致性解决方案延迟双删&#xff08;有脏数据的风险&#xff09;分布式锁&#xff08;强一致性&#xff0c;性能比较低&#xff09;异步通知&#xff08;保证数据的最终一致性&#xff0c;高并发情况下会出现短暂的不一致情况&#xff09; 双写一致性 当修改了数…...

CustomTkinter:创建现代、可定制的Python UI

文章目录 介绍安装设置外观与主题外观模式主题设置自定义主题颜色窗口缩放CTkFont字体设置CTkImage图片Widgets窗口部件CTk Windows窗口CTk窗口CTkInputDialog对话框CTkToplevel顶级窗口布局pack布局palce布局Grid 网格布局Frames 框架Frames滚动框架...

华为OD机试真题【不含 101 的数】

1、题目描述 【不含 101 的数】 【题目描述】 小明在学习二进制时&#xff0c;发现了一类不含 101的数&#xff0c;也就是&#xff1a; 将数字用二进制表示&#xff0c;不能出现 101 。 现在给定一个整数区间 [l,r] &#xff0c;请问这个区间包含了多少个不含 101 的数&#…...

Spring IoC和DI详解

IOC思想 IoC&#xff08; Inversion of Control&#xff0c;控制反转&#xff09; 不是一门具体技术&#xff0c;而是一种设计思想&#xff0c; 是一种软件设计原则&#xff0c;它将应用程序的控制权&#xff08;Bean的创建和依赖关系&#xff09;从应用程序代码中解耦出来&am…...

mysql-binlog

1. 常用的binlog日志操作命令 1. 查看bin-log是否开启 show variables like log_%;2. 查看所有binlog日志列表 show master logs;3.查看master状态 show master status;4. 重置&#xff08;清空&#xff09;所有binlog日志 reset master;2. 查看binlog日志内容 1、使用mysqlb…...

通过BeanFactotyPostProcessor动态修改@FeignClient的path

最近项目有个需求&#xff0c;要在启动后&#xff0c;动态修改FeignClient的请求路径&#xff0c;网上找到的基本都是在FeignClient里使用${…}&#xff0c;通过配置文件来定义Feign的接口路径&#xff0c;这并不能满足我们的需求 由于某些特殊原因&#xff0c;我们的每个接口…...

数据结构与算法系列-二分查找

二分查找 什么是二分查找&#xff1f; 二分查找是一种针对有序集合&#xff0c;每次将要查找的区间缩小一半&#xff0c;直到找到查找元素&#xff0c;或区间被缩小为0。 如何实现二分查找&#xff1f; 实现有3个注意点&#xff1a; 终止条件是 low < high 2.求中点的算…...

CSS 毛玻璃特效运用目录

主要是记录毛玻璃相关的特效实践案例和实现思路。 章节名称完成度难度文章地址完整代码下载地址Glassmorphism 登录表单完成一般文章链接代码下载Glassmorphism 按钮悬停效果完成一般文章链接代码下载Glassmorphism 计算器完成一般文章链接代码下载Glassmorphism 卡片悬停效果…...

如何在Qt6中引入Network模块

2023年10月1日&#xff0c;周日凌晨 2023年10月2日&#xff0c;周一下午 第一次更新 目录 如果用的是CMakeQt Console ApplicationQt Widgets Application如果用的是qmake 如果用的是CMake find_package(Qt6 COMPONENTS Network REQUIRED) target_link_libraries(mytarget…...

2023/10/4 QT实现TCP服务器客户端搭建

服务器端&#xff1a; 头文件 #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集群部署&#xff0c;可以参考如下博客 请安装k8s集群&#xff0c;centos安装k8s集群 请安装k8s集群&#xff0c;ubuntu安装k8s集群 2.安装kubEedge 2.1 编辑kube-proxy使用ipvs代理 kubectl edit configmaps kube-proxy -n kube-system #修改kube-proxy#大约在40多行…...

【LeetCode热题100】--35.搜索插入位置

35.搜索插入位置 使用二分查找&#xff1a; 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是一个强大而灵活的开源安全框架&#xff0c;它干净利落地处理身份认证&#xff0c;授权&#xff0c;企业会话管理和加密。 官网&#xff1a; http://shiro.apache.org/ 源码&#xff1a; https://github.com/apache/shiro Subject&#xff1a;代表当前用户或…...

PostgreSQL基础语法

当谈到关系型数据库管理系统&#xff08;RDBMS&#xff09;时&#xff0c;PostgreSQL是一个备受推崇的选择。它是一个开源的、强大的RDBMS&#xff0c;具有广泛的功能和支持。本文将介绍一些PostgreSQL的基础语法&#xff0c;以帮助您入门。 1. 安装和配置 在开始使用PostgreS…...

编程前置:处理Excel表格,定位单元格位置,输入文字前,让AI机器人知道我说什么

原提问&#xff1a; input输入表头 &#xff08;input内除了/&#xff0c;空格 回车 标点符号等 全部作为单元格分隔符&#xff09; 由我设置input输入的是行or列 给选项 1. 行 2. 列 默认回车或没输入值是列由我设置起始位置行列 例如 3,2 表示3行2列 当我输入3,2 就表示在第…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...

什么是VR全景技术

VR全景技术&#xff0c;全称为虚拟现实全景技术&#xff0c;是通过计算机图像模拟生成三维空间中的虚拟世界&#xff0c;使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验&#xff0c;结合图文、3D、音视频等多媒体元素…...

k8s从入门到放弃之HPA控制器

k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率&#xff08;或其他自定义指标&#xff09;来调整这些对象的规模&#xff0c;从而帮助应用程序在负…...

在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7

在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤&#xff1a; 第一步&#xff1a; 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为&#xff1a; // 改为 v…...

数据库——redis

一、Redis 介绍 1. 概述 Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的、高性能的内存键值数据库系统&#xff0c;具有以下核心特点&#xff1a; 内存存储架构&#xff1a;数据主要存储在内存中&#xff0c;提供微秒级的读写响应 多数据结构支持&…...

CTF show 数学不及格

拿到题目先查一下壳&#xff0c;看一下信息 发现是一个ELF文件&#xff0c;64位的 ​ 用IDA Pro 64 打开这个文件 ​ 然后点击F5进行伪代码转换 可以看到有五个if判断&#xff0c;第一个argc ! 5这个判断并没有起太大作用&#xff0c;主要是下面四个if判断 ​ 根据题目…...