文档章节

Hutool之文件工具——FileUtil

路小磊
 路小磊
发布于 2014/07/09 00:56
字数 838
阅读 681
收藏 10

简介

我想在Java工具中,文件操作应该也是使用相当频繁的,但是Java对文件的操作由于牵涉到流,所以较为繁琐,各种Stream也是眼花缭乱,因此大部分项目里的util包中我想都有一个FileUtil的类,而本类就是对众多FileUtil的总结。

Linux命令对应方法

这些方法都是按照Linux命令来命名的,方便熟悉Linux的用户见名知意,例如:

  1. ls 返回给定目录的所有文件对象列表,路径可以是相对ClassPath路径或者绝对路径,不可以是压缩包里的路径。
  2. listFileNames 则是返回指定目录下的所有文件名,支持jar等压缩包。
  3. touch 创建文件,如果给定路径父目录不存在,也一同创建。
  4. del 删除文件或者目录,目录下有嵌套目录或者文件会一起删除。
  5. mkdir 创建目录,父目录不存在自动创建。
  6. createTempFile 创建临时文件,在程序运行完毕的时候,这个文件会被删除。
  7. copy 复制文件或目录,目标文件对象可以是目录,自动用原文件名,可以选择是否覆盖目标文件。
  8. move 移动文件或目录,原理是先复制,再删除原文件或目录
  9. isExist 文件或者目录是否存在。

常用方法

getAbsolutePath

获得绝对路径,如果给定路劲已经是绝对路径,返回原路径,否则根据ClassPath或者给定类的相对位置获得其绝对位置

close

对于实现了Closeable接口的对象,可以直接调用此方法关闭,且是静默关闭,关闭出错将不会有任何调试信息。这个方法也是使用非常频繁的,例如文件流的关闭等等。

equals

比较两个文件是否相同

文件读写

写文件

  1. getBufferedWriter 获得带缓存的写入对象,可以写字符串等。
  2. getPrintWritergetBufferedWriter的包装,可以有println等方法按照行写出。
  3. getOutputStream 会的文件的写出流想对象。
  4. writeString直接写字符串到文件,会覆盖之前的内容。
  5. appendString 追加字符串到文本。
  6. writeLines appendLines 覆盖写入和追加文本列表,每个元素都是一行。
  7. writeBytes 写字节码。
  8. writeStream 写流中的内容到文件里。

读文件

  1. getReader 获得带缓存的Reader对象。
  2. readLines 按行读取文件中的数据,返回List,每一个元素都是一行文本。
  3. load 按照给定的ReaderHandler对象读取文件中的数据,ReaderHandler是一个借口,实现后就可以操作Reader对象了,这个方法存在是为了避免用户手动调用close方法。
  4. readString 直接读出文件中的所有文本。
  5. readBytes 读字节码

其他

  1. isModifed 文件是否被修改过,需要传入一个时间戳,用来比对最后修改时间。
  2. getExtension 获得文件的扩展名。

© 著作权归作者所有

共有 人打赏支持
路小磊

路小磊

粉丝 314
博文 53
码字总数 40548
作品 5
乌海
程序员
hutool 2.15.2 发布,Java 工具集

Hutool 是一个Java工具包,提供了丰富的文件、日期、日志、正则、字符串、配置文件等工具方法,并封装了一套简单易用的ORM框架。 更新内容: ● 修复SqlBuilder中 Order不支持多字段多向排序...

路小磊
2016/06/06
2.7K
6
Hutool 3.0.7 发布,Java 工具集

Hutool 是一个Java工具包,提供了丰富的文件、日期、日志、正则、字符串、配置文件等工具方法,并封装了一套简单易用的ORM框架。 主页:http://hutool.cn/ 文档:http://hutool.mydoc.io/ (...

路小磊
2017/06/15
1K
24
Hutool 2.15.8 发布,Java 工具集

Hutool 2.15.8 发布了。Hutool 是一个Java工具包,提供了丰富的文件、日期、日志、正则、字符串、配置文件等工具方法,并封装了一套简单易用的ORM框架。 更新内容: 1、修复Http编码问题 2、...

路小磊
2016/09/07
2.1K
10
hutool 2.14.0 发布,Java 工具集

Hutool 是一个Java工具包,提供了丰富的文件、日期、日志、正则、字符串、配置文件等工具方法,并封装了一套简单易用的ORM框架。 ●修复HTTP模块中空参数导致的空指针问题 ●修复LogWraper的...

路小磊
2016/01/27
3.1K
28
Hutool 2.16.0 发布,Java 工具集

Hutool 2.16.0 发布了。Hutool 是一个Java工具包,提供了丰富的文件、日期、日志、正则、字符串、配置文件等工具方法,并封装了一套简单易用的ORM框架。 新特性 Conver类变为Convert类 增加H...

路小磊
2016/12/30
1K
20

没有更多内容

加载失败,请刷新页面

加载更多

Ubuntu18.04 安装最新版WPS

1.手动卸载libreoffice:sudo apt-get remove --purge libreoffice* 2.官网下载WPS和字体: WPS:http://wps-community.org/download.html 字体:http://wps-community.org/download.html?vl......

AI_SKI
44分钟前
3
0
数据结构(算法)-图(深度优先搜索 DFS)

#include <iostream>using namespace std;#define MaxVex 30typedef char VertexType;typedef struct vexNode adjList[MaxVex];struct edgeNode{int adjvex;//邻接点......

ashuo
49分钟前
0
0
1024 搞事倒计时!距程序员节还有 2 天!

详情请关注微信公众号:七牛云

七牛云
49分钟前
0
0
Java泛型方法

1. 定义泛型方法 (1) 如果你定义了一个泛型(类、接口),那么Java规定,你不能在所有的静态方法、静态初块等所有静态内容中使用泛型的类型参数。例如: public class A<T> { public st...

两广总督bogang
50分钟前
2
0
如何解决JavaScript中0.1+0.2不等于0.3

console.log(0.1+0.2===0.3)// true or false??   在正常的数学逻辑思维中,0.1+0.2=0.3这个逻辑是正确的,但是在JavaScript中0.1+0.2!==0.3,这是为什么呢?这个问题也会偶尔被用来当...

peakedness丶
50分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部