JavaSE补充 | apache-common包的使用,快速完成IO操作

news2024/11/18 1:53:08

目录

一:apache-common包的使用,快速完成IO操作

1. IOUtils类的使用

2. FileUtils类的使用


一:apache-common包的使用,快速完成IO操作

IO技术开发中,代码量很大,而且代码的重复率较高,为此Apache软件基金会,开发了IO技术的工具类commonsIO,大大简化了IO开发! 导入commons-io-2.5.jar包,两种方式:

第一种方式:在项目的根目录下创建一个目录,把jar包拷贝进去,然后右击鼠标点击Add as Library添加进去 

第二种方式:File--->Project Structure--->Libraries,进行添加

1. IOUtils类的使用

常用方法:

- 静态方法:IOUtils.copy(InputStream in,OutputStream out)
- 静态方法:IOUtils.closeQuietly

①copy()方法,静态方法,传递字节流,实现文件复制;参数一个是文件的字节流输入对象,另一个是文件的字节流输出对象。
②closeQuietly()方法,静态方法,(任意流对象)悄悄的释放资源,自动处理close()方法抛出的异常

例:使用字节流,实现文件的拷贝,例如:图片的复制

    @Test
    public void test5() {
        FileInputStream fis = null;
        FileOutputStream fos = null;
        try {
            // 使用一个字节流实现文件的复制(比如图片)
            File srcFile = new File("C:\\Users\\86177\\Pictures\\桌面壁纸\\7.jpg");
            File destFile = new File("C:\\Users\\86177\\Pictures\\桌面壁纸\\77.jpg");
            // 创建字节流对象
            fis = new FileInputStream(srcFile);
            fos = new FileOutputStream(destFile);
            // 调用方法进行拷贝
            IOUtils.copy(fis,fos);
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            // 关闭资源
            IOUtils.closeQuietly(fis);
            IOUtils.closeQuietly(fos);
        }
    }

注:使用下面讲的FileUtils类的copyFile()方法,传两个File对象也可以完成以上的操作。

2. FileUtils类的使用

常用方法:

- 静态方法:void copyDirectoryToDirectory(File src,File dest)             
- 静态方法:void writeStringToFile(File file,String content)
- 静态方法:String readFileToString(File file)
- 静态方法:void copyFile(File srcFile,File destFile)

①copyDirectoryToDirectory()方法, 静态方法,整个目录的复制,自动进行递归遍历; 参数是两个目录的File;src:要复制的文件夹路径、dest:要将文件夹粘贴到哪里去

void copyDirectoryToDirectory(File src,File dest):

例:将一个目录下所有的内容拷贝到另一个目录(会进行递归拷贝)

    @Test
    public void test1()  {
        File srcFile = new File("C:\\dev\\Mysql8");
        File destFile = new File("G:\\");
        // 调用方法进行复制,可以递归复制目录
        try {
            FileUtils.copyDirectoryToDirectory(srcFile,destFile);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        // 复制成功
        System.out.println("递归复制成功");
    }

②writeStringToFile()方法, 静态方法,将内容content写入到file中,参数是文件的File对象

void writeStringToFile(File file,String content)

例:讲一个字符串“abcd”写入到file.txt文件中去

    @Test
    public void test2() {
        File file = new File("file.txt");
        // 调用方法进行写入操作
        try {
            FileUtils.writeStringToFile(file,"abcd");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        // 写入成功
        System.out.println("写入成功");
    }

③ readFileToString()方法, 静态方法,读取文件内容,并返回一个String;参数是文件的File对象

String readFileToString(File file)

例:读取某个文件的内容到输出台上

    @Test
    public void test3() {
        File file = new File("C:\\dev\\hmdp.sql");
        // 调用方法进行读取,内容返回的是一个字符串
        String readFileToString = null;
        try {
            readFileToString = FileUtils.readFileToString(file);// 也可以多传一个参数,指定字符集
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        // 读取成功
        System.out.println(readFileToString);
        System.out.println("读取成功");
    }

④copyFile()方法, 静态方法,普通的文件复制,将一个文本文件拷贝到另一个目录下的文本文件中(区别于copyDirectoryToDirectory递归拷贝);参数一个是文件的File对象,另一个也是文件的File对象(相当于拷贝过去后并起了名)

例:将一个文件拷贝到另一个目录当中去并起名

    @Test
    public void test4()  {
        File srcFile = new File("C:\\dev\\hmdp.sql");
        File destFile = new File("G:\\hmdb-2.sql");
        // 将一个文件拷贝到另一个目录下
        try {
            FileUtils.copyFile(srcFile,destFile);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        // 复制成功
        System.out.println("复制成功");
    }

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

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

相关文章

【MySQL】数据库约束和聚合函数的使用

目录 上篇在这里喔~ 1.数据库约束 1.NULL约束 2.UNIQUE唯一约束 3.DEFAULT默认值约束 4.PRIMARY KEY主键约束 5.FOREIGN KEY外键约束 2.表的设计 1.设计思路​编辑 2.固定套路​编辑 2.1一对一关系 2.2一对多关系 ​编辑 2.3多对多关系 ​编辑​编辑​编辑 3.插入…

《C++模板》(初阶)零基础讲解

本文主要介绍C的模板,包括函数模板和类模板 文章目录 为什么要有模板1、函数模板1.1 函数模板概念1.1 函数模板格式1.3 函数模板的原理1.4 函数模板的实例化1.5 模板参数的匹配原则 2、类模板2.1 类模板的定义格式2.2 类模板的实例化 为什么要有模板 就拿我们写的交…

从“捐赠openEuler”到“向openEuler捐赠”,openEuler生态走入高速发展期

【中国,上海,2023年4月21日】openEuler Developer Day 2023于4月20-21日在线上和线下同步举办。本次大会由开放原子开源基金会指导,中国软件行业协会、openEuler社区、边缘计算产业联盟共同主办,以“万涓汇流,奔涌向前…

ROS使用(10)URDF

Building a visual robot model from scratch 在本教程中,我们将构建一个机器人的视觉模型,它看起来有点像R2D2。 在后面的教程中,您将学习如何 清晰地表达模型,添加一些物理属性,并使用xacro生成更简洁的代码&#x…

Rebex Total Pack文件传输组件,改进的递归断路器

Rebex Total Pack文件传输组件,改进的递归断路器 文件系统:改进的递归断路器。 ZIP:改进了ZIP数据描述符解析器,以更好地处理与Zip64的不一致性。 .NET组件 Rebex文件服务器-适用于.NET的SFTP、SCP和SSH服务器组件。可以轻松创建可供任何SFTP…

AI 时代的学习方式: 和文档对话

作者:明明如月学长, CSDN 博客专家,蚂蚁集团高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《EffectiveJava》独家解析》专栏作者。 热门文章推荐…

Spring请求与响应——响应

我们上一篇文章说了请求,SpringMVC接收到请求和数据后,进行一些了的处理,当然这个处理可以是转发给Service,Service层再调用Dao层完成的,不管怎样,处理完以后,都需要将结果告知给用户也就是给用…

Codeium的使用

官网:CodeiumCodeium offers best in class AI code completion & search — all for free. It supports over 40 languages and integrates with your favorite IDEs, with lightning fast speeds and state-of-the-art suggestion quality.https://codeium.co…

数据结构_第十三关(3):归并排序、计数排序

目录 归并排序 1.基本思想: 2.原理图: 1)分解合并 2)数组比较和归并方法: 3.代码实现(递归方式): 4.归并排序的非递归方式 原理: 情况1: 情况2&…

docker的三种镜像创建

目录 dock的三种镜像创建 基于现有的镜像创建 基于本地模板创建 基于Dockerfile 创建 联合文件系统 镜像加载原理 为什么Docker里的centos的大小才200M? Docker 镜像结构的分层 Dockerfile 操作常用的指令 Dockerfile格式 dockerfile构建apache实例 dock的…

探索【Stable-Diffusion WEBUI】各种插件和追求更高效

文章目录 (零)前言(一)界面与翻译(1.1) 主题风格(kitchen Theme)(1.2) 对照翻译(Bilingual Localization)(1.3) 自行翻译(1.3) 提示词翻译(Prompt Translator&#xff09…

asp.net765数码手机配件租赁系统

员工部分功能 1.员工登录,员工通过自己的账号和密码登录到系统中来,对租赁信息进行管理 2.配件查询,员工可以查询系统内的配件信息 3.客户信息管理,员工可以管理和店内有业务往来的客户信息 4.配件租赁,员工可以操作用…

字节蝉联全球独角兽榜首,ChatGPT企业狂升200多位

江山代有才人出,各领风骚数百年。 4月18日, 胡润研究院发布了《2023全球独角兽榜》,列出了全球成立于2000年之后,价值10亿美元以上的非上市公司。 榜单显示,全球一共有1361家独角兽企业入围榜单,分布在48个…

不要再问为什么在职读研?在中国人民大学与加拿大女王大学金融硕士项目听到了最好的答案

为什么要在职读研呢?平时工作已经很忙很累了,再利用业余时间去学习是为什么呢?有不满足于现状的,有一直为了自己目标努力冲刺的,有为了圆自己名校梦想的,也有单纯喜欢专业喜欢学校的。相信每个读研人都有自…

在时代的浪潮中实在前行,实在智能应邀出席浪潮数字企业2023生态伙伴大会

4月15日,以“新产品 新路径 新生态,共赢2023”为主题的浪潮数字企业生态伙伴大会在济南召开。 浪潮集团执行总裁王兴山、浪潮数字企业总经理魏代森、浪潮数字企业副总经理兼CTO郑伟波、IDC中国副总裁兼首席分析师武连峰等业内专家、实在智能等行业领军企…

三步搞定centos虚拟机的克隆

vm17centos7min版本,三步实现大数据的基础操作 一 在vm中选择克隆选项二 配置IP地址三 三台设备基于秘钥实现免密登录1 三台设备分别执行下面的指令,产生公钥和私钥2 给hadoop124和hadoop123 和hadoop122执行下列指令,将123和124的公钥拷贝给…

【小程序云开发】30分钟搭建个人相册小程序

文章目录 前言准备工作小程序架构创建小程序云开发环境创建数据库搭建个人相册写在最后 前言 图片存储,是所有应用开发里最常见的场景之一。 本文将通过实战“个人相册小程序”开发,教你如何借助小程序 云开发 能力,提升功能开发效率&#x…

【环境篇 1】CC2340环境搭建

文章目录 1 准备安装条件2.安装工具2.1 CCS12.1 安装2.2 下载并安装CC23XX SDK2.3 下载并安装对应开发环境和版本的 Sysconfig2.4 下载对应版本Free-RTOS2.5 下载并安装 TI Clang 3 工程编译3.1 环境修改3.2 导入工程2.4 编译项目 1 准备安装条件 CCS IDE编译工具,…

React 路由react-router-dom详解

React 路由react-router-dom详解 ( 路由嵌套 路由传参 路由权限 路由优化 按需导入 404页面 ) 前面我们先了解一下 路由是什么? 路由分类有哪些?内置API有哪些? 可能有点枯燥,不喜欢看的直接跳过! 1,相…

2023年软考中级网络工程师考试大纲

1.考试目标 通过本考试的合格人员能根据应用部门的要求进行网络系统的规划、设计和网络设备的软硬件安装调试工作,能进行网络系统的运行、维护和管理,能高效、可靠、安全地管理网络资源,作为网络专业人员对系统开发进行技术支持和指导&#…