使用apache 的FileUtils处理文件的复制等操作方式

Java 使用FileUtils.copyFile复制文件 1、FileUtils.copyFile方法 copyFile方法有多种重载形式,下面截图只是其中比较简单的一种,详细见官方文档 2、业务代码: private File copyFile(Long baseTime, int orgId, int typeId, String sourcePath, String fileName) throws IOException { String time = DateUtils.convertDateToString(DateUtils.timesta 阅读详情

1、commons-io依赖

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.6</version>
</dependency>

2、常用API使用

2.1 获取文件

File fileA = FileUtils.getFile(testPath + "a.txt");
// 最终路径为入参拼接起来即testPath + "a.txt"
File fileAA = FileUtils.getFile(testPath, "a.txt");
// 获取某个目录下的文件,后面参数是拼接而成的
File fileAAA = FileUtils.getFile(new File(testPath), "a.txt");

2.2 获取临时目录和用户目录

// 获取临时目录路径
// 每种操作系统有所不同,Windows一般是C:\DOCUME~1\用户~1\LOCALS~1\Temp,Solaris一般是:/var/tmp/,Linux和Mac OS X一般是:/tmp
// Windows的java.io.tmpdir属性值可以看环境变量->用户变量中的TMP。
File tempDirectory = FileUtils.getTempDirectory();
String tempDirectoryPath = FileUtils.getTempDirectoryPath();
File userDirectory = FileUtils.getUserDirectory();
String userDirectoryPath = FileUtils.getUserDirectoryPath();
System.out.println(tempDirectoryPath + "  -  " + tempDirectory);
System.out.println(userDirectoryPath + "  -  " + userDirectory.getName());

2.3 创建文件

// 创建文件(实现与Unix上“ touch”实用程序相同的行为。它会创建一个大小为0的新文件,或者如果文件已经存在,则将其打开和关闭而不进行修改,而是更新文件的日期和时间。)
File fileD = new File(testPath + "d.txt");
FileUtils.touch(fileD);

2.4 写内容到文件

// 写文件
File fileB = new File(testPath + "b.txt");
if (!fileB.exists()) {
    fileB.createNewFile();
}
// 通过字节写入文件
FileUtils.writeByteArrayToFile(fileB, "Hello, smile".getBytes());
FileUtils.writeByteArrayToFile(fileB, "Hello, sunshine".getBytes(), true);
// 通过行写入文件(覆盖)
FileUtils.writeLines(fileB, Lists.newArrayList("春夏秋冬, 三餐四季,只愿有你"));
// 通过行写入文件(追加)
FileUtils.writeLines(fileB, Lists.newArrayList("春风很柔,夏风很烈,秋风清爽,东风凛冽,你就是春夏秋冬的风"), true);
// 字符串写入,不换行追加
FileUtils.writeStringToFile(fileB, "唯美有你", "UTF-8", true);
FileUtils.writeStringToFile(fileB, "哪里有你", Charset.defaultCharset(), true);
File fileC = new File(testPath + "c.txt");
if (!fileC.exists()) {
    fileC.createNewFile();
}
//  流操作
fileInputStream   = FileUtils.openInputStream(fileB);
//  fileOutputStream = FileUtils.openOutputStream(fileC);
fileOutputStream = FileUtils.openOutputStream(fileC, true);
// 字节数组
byte[] buffer = new byte[1024];
// 将文件内容写到文件中
while (fileInputStream.read(buffer) != -1) {
    fileOutputStream.write(buffer);
}

2.5 读取文件内容

// 按行读取文件内容
List list = FileUtils.readLines(fileAAA, "UTF-8");
System.out.println(list.size() > 0 ? list.get(0) : "" + list.size());
List<String> lines = FileUtils.readLines(fileB, Charset.defaultCharset());
System.out.println(lines.size() > 0 ? lines.get(0) : "" + lines.size());
// 读取文件内容为字节
byte[] bytes = FileUtils.readFileToByteArray(fileB);
System.out.println(new String(bytes));
// 读取文件为String
String fileToString = FileUtils.readFileToString(fileB, "UTF-8");
System.out.println(fileToString);
String fileToString2 = FileUtils.readFileToString(fileB, Charset.defaultCharset());
System.out.println(fileToString2);

2.6 获取目录文件及目录

// recursive是否递归查询,这里查询.txt文件,也可以指定其他格式的,如果extensions为null则查询所有类型的文件
Collection<File> listFiles = FileUtils.listFiles(new File(testPath), null, true);
Collection<File> listFiles2 = FileUtils.listFiles(new File(testPath), new String[]{"txt"}, true);
// 获取某个目录下的所有文件 TrueFileFilter.INSTANCE表示匹配所有的
Collection<File> files1 = FileUtils.listFiles(new File(testPath), TrueFileFilter.INSTANCE, TrueFileFilter.INSTANCE);
// 获取某个目录下的所有文件和文件目录 TrueFileFilter.INSTANCE表示匹配所有的
Collection<File> files2 = FileUtils.listFilesAndDirs(new File(testPath), TrueFileFilter.INSTANCE, TrueFileFilter.INSTANCE);

2.7 文件内容比较

// 文件内容比较
boolean aa = FileUtils.contentEquals(fileA, fileAA);
boolean ab = FileUtils.contentEquals(fileA, fileB);

2.8 文件或目录拷贝

// 文件复制,将文件A的内容复制给文件D
FileUtils.copyFile(fileA, fileD);
// 把文件复制到某个目录下
FileUtils.copyFileToDirectory(fileD, new File(testPath + "inner"));
// 把某个目录拷贝到另外一个目录
FileUtils.copyDirectoryToDirectory(new File(testPath + "inner"), new File(testPath + "other"));
// 把文件或目录拷贝到指定目录
FileUtils.copyToDirectory(fileB, new File(testPath + "inner"));
// 文件目录复制
FileUtils.copyDirectory(new File(testPath + "inner"), new File(testPath + "first"));

2.9 文件或目录删除

// 删除目录
FileUtils.deleteDirectory(new File(testPath + "first"));
// 删除文件或目录
FileUtils.deleteQuietly(fileD);
FileUtils.deleteQuietly(new File(testPath + "first"));

转载:原文链接

Java高效IO处理工具库commons-io实战解析 在现代Java开发中,文件和流的操作频繁且复杂,尤其是在处理大量数据、跨平台文件交互、网络资源读取等场景中,传统的Java IO API虽然提供了基础支持,但往往代码冗长、异常处理繁琐、操作效率低下。Apache Commons-IO库的出现,极大地简化了这些操作,提升了开发效率与代码可维护性。Apache Commons-IO 是 Apache Commons 项目的一部分,专为简化 Java IO 操作而设计。它提供了一系列静态工具类(如FileUtilsIOUtils。 阅读详情

相关推荐

FileUtils实现文件下载

FileUtils实现文件下载,下载的文件会显示真是的文件名,下载的文件无论什么格式都不会在页面直接打开

FileUtils使用介绍

FileUtils使用介绍 这篇文章我们会介绍FileUtils类相关的功能,它也是Apache Commons IO的一部分。它所提供的方法将我们常用的任务进行了包装,使我们写的代码更简洁易读。 1. FileUtils方法 我将介绍FileUtils类中一些重要的方法,并详细说明它们如何使用。FileUtils是一个静态类,这样意味着我们可以不用实例化就可以直接通过类去调用方法。 con...

码路编 3500

commons-io-2.2.jar必须依赖包.rar

使用方法   1、首先在项目下创建一个文件夹,保存我们的jar包。在项目名上右击,依次点击【New】-->【Floder】,打开新建文件夹窗口   2、输入文件夹名称【lib】,点击【ok】。我们通常在lib文件夹中存放从外部引入的jar包   3、找到我们要引入的jar包,鼠标选中jar包,然后按住鼠标左键不放,把jar包拖到lib文件夹中。或先复制jar包,然后在lib文件夹上右击,选择复制。此时,打开选择框,我们选择默认的【copy files】,点击【OK】关闭。然后我们就可以在lib文件夹下看到我们复制成功的jar包。   4、此时,只是把jar包复制到项目中,还不能使用。我们再在项目名上右击,依次选择【Build Path】-->【Configure Build Path...】。   5、在打开的窗口中,先选中【Libraries】页,再从右边的按钮中点击【add JARs...】   6、在打开的窗口中,我们依次展开本项目的项目和lib文件夹,然后选中我们刚才复制到项目中的jar包,然后点击【OK】关闭窗口   7、此时,我们在刚才打开的【Libraries】页中可以看到我们引入的jar包的名称。点击【OK】确认。   8、此时,在Eclipse中,我们就可以使用这个jar包了。

FileUtils常用方法 - commons-io常用工具类

一、依赖信息 <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.5</version> </dependency> 二、FileUtils 包含了与File对象一起工作的工具方法。这些方法包括读、写、复制、比较文件。 1、FileUtils常用常...

Return_Code的专栏 8114

别再搞错了!ERA5-Land小时数据里的辐射值,原来不是你想的那个‘瞬时值’

本文深入解析ERA5-Land小时数据中辐射值的累积特性,揭示其与瞬时值的本质区别。通过详细的数据处理方法和Python代码示例,指导研究者正确转换累积辐射量为实用瞬时值,避免常见误区,提升气候模型验证的准确性。

weixin_28700411的博客 210

plc secs半导体通讯协议 PLC 与MES的SECS/GEM通讯方案

符合SEMI E4, E5, E30, E37 的 SECS/GEM通讯方案 专业稳定的产品,持续运行5年都不出错 遵循 SEMI 人机交互设计,提供触摸屏支持让你触手可及。 毫米级的响应,单个messge在5ms以内 MES与PLC之间达到实时性,如采集实时性的数据 每秒支持100条Message以上 快速搭建PLC与MES之间的SECS/GEM桥梁,只需简单配置数据 SECS/GEM介绍 遵循 SEMI 人机交互设计,提供触摸屏支持让你触手可及。 增删改上报数据配置简单,并且一目了然 大量的数据处理.

SECS/GEM 6362

Java使用apache.commons.io框架下的FileUtils类实现文件的写入、读取、复制、删除

Apache Commons IO 是 Apache 开源基金组织提供的一组有关IO(Input/Output)操作的小框架,它是 Apache Commons 项目的一部分,专注于提供简单易用的 API,用于处理输入和输出操作。Apache Commons IO 是一个功能强大的 Java IO工具库,提供了丰富的 API 来简化文件和流的操作。通过使用 Commons IO 库,开发者可以更加简洁、高效地完成文件和流的相关任务。

pan_junbiao的博客 1682

踩坑实录:C#上位机YOLOv11从2FPS到45FPS,ONNX Runtime GPU加速全解析

算力迁移:将推理核心从CPU迁移至GPU(核心提速手段);内存复用:避免重复分配/释放内存,减少GC压力;维度固定:工业场景固定输入分辨率,关闭动态维度;资源限制:合理限制GPU/CPU/内存占用,避免资源耗尽;解耦设计:推理线程与UI线程解耦,避免跨线程问题。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 573

Java - 使用 FileUtils 简化文件操作

前言: 在工作当中我们往往遇到很多文件的操作,我们也习惯写一些自己定义的工具类来简化文件操作,其实apache的commons的FileUtils类就是这样一个工具类,使用它能大大的简化我们对文件的操作。 准备工作: 1. 下载 jar 地址:http://commons.apache.org/proper/commons-io/download_io.cgi 2. ......

2178

vue接入海康4G版摄像头通过萤石云平台推送视频流教程

vue-video-player接入海康视频,videojs-contrib-hls,vue播放视频

renkai721的专栏 7280

SSE(Server-Sent Events)完整使用示例

本篇使用Node.js 作为服务端,在浏览器客户端演示SSE的完整实例和演示。实现了一个基于 Server-Sent Events (SSE) 的实时数据推送功能。

oscar999的专栏 750

apache的FileUtils的jar包下载导入以及FileUtils方法

需要导入commons-io的jar包,下载地址:(选择bin,不是src)然后解压缩zip里有jar包,自行导入下载地址: * http://commons.apache.org/proper/commons-io/download_io.cgi  Java中的一般的方法,我们要复制一个文件,可能需要读取源文件,生成流对象,再写入一个新的文件中,使用apache commons-io很容就可以处...

qq_28863045的博客 1万+

手把手入门YOLO到改进优化教程 | 【P5进阶篇】YOLOv8损失函数改进实战-损失函数IoU之KLD Loss

在本节,将从 KLD Loss(Kullback–Leibler Divergence Loss)的理论到实战代码实现,带你把 KLD Loss融合进 YOLOv8 的训练框架中。并通过训练日志与实验结果,验证 KLD Loss 在实际工程中的优势。

嵌入式阿齐Archie 2万+

org.apache.commons.io.FileUtils工具类各方法使用详解,二次封装

/** * 将url内容复制到文件 * * @param source url * @param destination 文件目录 * @param connectionTimeout 连接超时,单位毫秒 * @param readTimeout 读取超时,单位毫秒 * @throws IOException */ public static void copyURLToFile(String source, String destinatio.

qq_40308101的博客 5588

IC 笔试真题之吾见——华为实习(1)

前言 今天(2022 04 07)刚建立了一个专栏《IC真题之吾见》,准备记录一些IC真题的见解,为以后找工作做一点准备。 刷题绝不是目的,以题代练,以题代学。 题目来自师兄申请 华为实习“设计”岗位 的笔试真题。 见解大部分来自自己学习的理解,也有部分超纲知识是网络检索得到,希望可以多多在评论区留言交流,共同进步! 有问题的地方也希望可以直接批评指正! 后面也会同步更新此专栏! 1、下列有关时序分析的描述正确的是() A. recovery时间,是指异步控制信号在有效时钟沿到达之后必须保持

记录所学,分享知识,结识挚友 8637

使用Qt Creator自带的Qt Designer构造UI界面流程总结

在本文中,我们将总结使用Qt Creator自带的Qt Designer构造UI界面的流程。在对话框中,您可以选择一个控件的信号,然后将其连接到另一个控件的槽。例如,您可以将按钮的点击信号连接到一个槽函数,以响应按钮的点击事件。右键单击窗口设计器中的空白区域,选择适当的布局管理器,如水平布局、垂直布局或网格布局。在Qt Designer中,您可以使用各种预定义的UI控件来设计应用程序的界面。现在,您可以在应用程序的源代码中使用生成的UI界面。在您的源文件中,包含相应的头文件,然后创建一个UI界面的实例。

cl6789的博客 1394

Java常用类(三):FileUtils类

FileUtils类常用方法: 1.复制文件夹 FileUtils.copyDirectory(File srcDir, File destDir) // 复制文件夹(文件夹里面的文件内容也会复制) FileUtils.copyDirectory(File srcDir, File destDir, FileFilter filter) // 复制文件夹,带有文件过滤功能 FileUtils.copyDirectoryToDirectory(File srcDir, File destDir) /.

sulia1234567890的博客 2万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

使用apache commons-io的FileUtils.copyFile简单地复制文件

使用apache commons-io的FileUtils.copyFile简单地复制文件  (2012-06-28 11:53:20) 转载▼ 标签:  杂谈   一般的方法,我们要复制一个文件,可能需要读取源文件,生成流对象,再写入一个新的文件中,使用apache commons-io很容就可以处理文件的复制。 下面的例

evilcry2012的专栏 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

文件工具类FileUtils的使用

在apache的的常用包commons-io.jar中,有对文件处理的工具类FileUtils,了解这个类的使用,在开发中可以快速完成对文件的一些功能的处理     //文件1 File file1; //文件2 File file2; //复制文件 copy one file into another FileUtils.copyFile(fil

longyi_java的专栏 2万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

使用FileUtils简化你的文件操作

使用FileUtils简化你的文件操作 前言:     在工作当中我们往往遇到很多文件的操作,我们也习惯写一些自己定义的工具类来简化文件操作,其实apache的commons的FileUtils类就是这样一个工具类,使用它能大大的简化我们对文件的操作。   准备工作:     1.下载jar     地址:http://commons.apache.org/proper/co

city6789的专栏 679

Java文件操作- org.apache.commons.io FileUtils类

一、FileUtils类的应用 1、写入一个文件; 2、从文件中读取; 3、创建一个文件夹,包括文件夹; 4、复制文件和文件夹; 5、删除文件和文件夹; 6、从URL地址中获取文件; 7、通过文件过滤器和扩展名列出文件和文件夹; 8、比较文件内容; 9、文件最后的修改时间; 10、计算校验和。 二、 复制文件或文件夹方法: 示例: import java.io.File; import java....

木子叶的奔跑 1751

Java IO流技术:(十二)Apache IOUtils的使用_Apache FileUtils的使用

Apache IOUtils的使用_Apache FileUtils的使用1.IOUtils 与 FileUtils2.工具类操作的相关方法 1.IOUtils 与 FileUtils Commons IO 是 apache 的一个开源的工具包,封装了 IO 操作的相关类,使用 Commons IO 可以很方便的读写文件 FileUtils 中提供了许多设计文件操作的 已封装好的方法 IOUtils 则是提供了读写文件的方法 2.工具类操作的相关方法 import org.apache.commons.

地球村 694

Java中的FileUtils类使用详解

Java中的FileUtils类使用详解

bjzhang75的博客 1650

java apache fileutil_apache.commons.io.FileUtils的常用操作

至于相关jar包可以到官网获取 http://commons.apache.org/downloads/index.htmlpackage com.wz.apache.fileUtils;import org.apache.commons.io.FileUtils;import org.apache.commons.io.IOUtils;import javax.print.attribute.s...

weixin_39735247的博客 234
上一篇: RabbitMQ安装及基本使用
下一篇: RabbitMQ基础概念及入门demo示例
Arbitrary.`
博客等级 码龄8年 9801粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值