public class FileUtil extends PathUtil
Modifier and Type | Field and Description |
---|---|
static String |
CLASS_EXT
Class文件扩展名
|
static String |
FILE_SEPARATOR
文件路径分隔符
在Unix和Linux下 是 '/' ; 在Windows下是 '\' |
static String |
JAR_FILE_EXT
Jar文件扩展名
|
static String |
JAR_PATH_EXT
在Jar中的路径jar的扩展名形式
|
static String |
PATH_FILE_PRE
当Path为文件形式时, path会加入一个表示文件的前缀
|
static String |
PATH_SEPARATOR
多个PATH之间的分隔符
在Unix和Linux下 是 ':' ; 在Windows下是 ';' |
Constructor and Description |
---|
FileUtil() |
Modifier and Type | Method and Description |
---|---|
static <T> File |
appendLines(Collection<T> list,
File file,
Charset charset)
将列表写入文件,追加模式,策略为:
当文件为空,从开头追加,尾部不加空行
当有内容,换行追加,尾部不加空行
当有内容,并末尾有空行,依旧换行追加
|
static <T> File |
appendLines(Collection<T> list,
File file,
String charset)
将列表写入文件,追加模式
|
static <T> File |
appendLines(Collection<T> list,
String path,
Charset charset)
将列表写入文件,追加模式
|
static <T> File |
appendLines(Collection<T> list,
String path,
String charset)
将列表写入文件,追加模式
|
static File |
appendString(String content,
File file,
Charset charset)
将String写入文件,追加模式
|
static File |
appendString(String content,
File file,
String charset)
将String写入文件,追加模式
|
static File |
appendString(String content,
String path,
Charset charset)
将String写入文件,追加模式
|
static File |
appendString(String content,
String path,
String charset)
将String写入文件,追加模式
|
static <T> File |
appendUtf8Lines(Collection<T> list,
File file)
将列表写入文件,追加模式
|
static <T> File |
appendUtf8Lines(Collection<T> list,
String path)
将列表写入文件,追加模式
|
static File |
appendUtf8String(String content,
File file)
将String写入文件,UTF-8编码追加模式
|
static File |
appendUtf8String(String content,
String path)
将String写入文件,UTF-8编码追加模式
|
static File |
checkSlip(File parentFile,
File file)
检查父完整路径是否为自路径的前半部分,如果不是说明不是子路径,可能存在slip注入。
|
static Checksum |
checksum(File file,
Checksum checksum)
计算文件校验码
|
static long |
checksumCRC32(File file)
计算文件CRC32校验码
|
static boolean |
clean(File directory)
清空文件夹
注意:清空文件夹时不会判断文件夹是否为空,如果不空则递归删除子文件或文件夹 某个文件删除失败会终止删除操作 |
static boolean |
clean(String dirPath)
清空文件夹
注意:清空文件夹时不会判断文件夹是否为空,如果不空则递归删除子文件或文件夹 某个文件删除失败会终止删除操作 |
static boolean |
cleanEmpty(File directory)
清理空文件夹
此方法用于递归删除空的文件夹,不删除文件 如果传入的文件夹本身就是空的,删除这个文件夹 |
static String |
cleanInvalid(String fileName)
清除文件名中的在Windows下不支持的非法字符,包括: \ / : * ?
|
static boolean |
containsInvalid(String fileName)
文件名中是否包含在Windows下不支持的非法字符,包括: \ / : * ?
|
static boolean |
contentEquals(File file1,
File file2)
比较两个文件内容是否相同
首先比较长度,长度一致再比较内容 此方法来自Apache Commons io |
static boolean |
contentEqualsIgnoreEOL(File file1,
File file2,
Charset charset)
比较两个文件内容是否相同
首先比较长度,长度一致再比较内容,比较内容采用按行读取,每行比较 此方法来自Apache Commons io |
static File |
convertCharset(File file,
Charset srcCharset,
Charset destCharset)
转换文件编码
此方法用于转换文件编码,读取的文件实际编码必须与指定的srcCharset编码一致,否则导致乱码 |
static File |
convertLineSeparator(File file,
Charset charset,
LineSeparator lineSeparator)
转换换行符
将给定文件的换行符转换为指定换行符 |
static File |
copy(File src,
File dest,
boolean isOverride)
复制文件或目录
情况如下: 1、src和dest都为目录,则将src目录及其目录下所有文件目录拷贝到dest下 2、src和dest都为文件,直接复制,名字为dest 3、src为文件,dest为目录,将src拷贝到dest目录下 |
static File |
copy(String srcPath,
String destPath,
boolean isOverride)
复制文件或目录
如果目标文件为目录,则将源文件以相同文件名拷贝到目标目录 |
static File |
copyContent(File src,
File dest,
boolean isOverride)
复制文件或目录
情况如下: 1、src和dest都为目录,则将src下所有文件目录拷贝到dest下 2、src和dest都为文件,直接复制,名字为dest 3、src为文件,dest为目录,将src拷贝到dest目录下 |
static File |
copyFile(File src,
File dest,
StandardCopyOption... options)
通过JDK7+的 Files#copy(Path, Path, CopyOption...)
|
static File |
copyFile(InputStream src,
File dest,
StandardCopyOption... options)
通过JDK7+的 Files#copy(InputStream, Path, CopyOption...)
|
static File |
copyFile(Resource src,
File dest,
StandardCopyOption... options)
通过JDK7+的 Files#copy(InputStream, Path, CopyOption...)
|
static File |
copyFile(String src,
String dest,
StandardCopyOption... options)
通过JDK7+的 Files#copy(Path, Path, CopyOption...)
|
static File |
copyFilesFromDir(File src,
File dest,
boolean isOverride)
复制文件或目录
情况如下: 1、src和dest都为目录,则将src下所有文件(不包括子目录)拷贝到dest下 2、src和dest都为文件,直接复制,名字为dest 3、src为文件,dest为目录,将src拷贝到dest目录下 |
static RandomAccessFile |
createRandomAccessFile(File file,
FileMode mode)
|
static RandomAccessFile |
createRandomAccessFile(Path path,
FileMode mode)
|
static File |
createTempFile()
在默认临时文件目录下创建临时文件,创建后的文件名为 prefix[Random].tmp。
|
static File |
createTempFile(File dir)
创建临时文件
创建后的文件名为 prefix[Random.tmp |
static File |
createTempFile(File dir,
boolean isReCreat)
创建临时文件
创建后的文件名为 prefix[Random].tmp |
static File |
createTempFile(String suffix,
boolean isReCreat)
在默认临时文件目录下创建临时文件,创建后的文件名为 prefix[Random].suffix。
|
static File |
createTempFile(String prefix,
String suffix,
boolean isReCreat)
在默认临时文件目录下创建临时文件,创建后的文件名为 prefix[Random].suffix。
|
static File |
createTempFile(String prefix,
String suffix,
File dir,
boolean isReCreat)
创建临时文件
创建后的文件名为 prefix[Random].suffix From com.jodd.io.FileUtil |
static boolean |
del(File file)
删除文件或者文件夹
注意:删除文件夹时不会判断文件夹是否为空,如果不空则递归删除子文件或文件夹 某个文件删除失败会终止删除操作 从5.7.6开始,删除文件使用 Files.delete(Path) 代替 File.delete() 因为前者遇到文件被占用等原因时,抛出异常,而非返回false,异常会指明具体的失败原因。 |
static boolean |
del(String fullFileOrDirPath)
删除文件或者文件夹
路径如果为相对路径,会转换为ClassPath路径! |
static boolean |
equals(File file1,
File file2)
检查两个文件是否是同一个文件
所谓文件相同,是指File对象是否指向同一个文件或文件夹 |
static boolean |
exist(File file)
判断文件是否存在,如果file为null,则返回false
|
static boolean |
exist(String path)
判断文件是否存在,如果path为null,则返回false
|
static boolean |
exist(String directory,
String regexp)
是否存在匹配文件
|
static String |
extName(File file)
获取文件扩展名(后缀名),扩展名不带“.”
|
static String |
extName(String fileName)
获得文件的扩展名(后缀名),扩展名不带“.”
|
static File |
file(File directory,
String... names)
通过多层目录参数创建文件
此方法会检查slip漏洞,漏洞说明见http://blog.nsfocus.net/zip-slip-2/ |
static File |
file(File parent,
String path)
创建File对象
根据的路径构建文件,在Win下直接构建,在Linux下拆分路径单独构建 此方法会检查slip漏洞,漏洞说明见http://blog.nsfocus.net/zip-slip-2/ |
static File |
file(String... names)
通过多层目录创建文件
元素名(多层目录名)
|
static File |
file(String path)
创建File对象,自动识别相对或绝对路径,相对路径将自动从ClassPath下寻找
|
static File |
file(String parent,
String path)
创建File对象
此方法会检查slip漏洞,漏洞说明见http://blog.nsfocus.net/zip-slip-2/ |
static File |
file(URI uri)
创建File对象
|
static File |
file(URL url)
创建File对象
|
static String |
getAbsolutePath(File file)
获取标准的绝对路径
|
static String |
getAbsolutePath(String path)
获取绝对路径,相对于ClassPath的目录
如果给定就是绝对路径,则返回原路径,原路径把所有\替换为/ 兼容Spring风格的路径表示,例如:classpath:config/example.setting也会被识别后转换 |
static String |
getAbsolutePath(String path,
Class<?> baseClass)
获取绝对路径
此方法不会判定给定路径是否有效(文件或目录存在) |
static BOMInputStream |
getBOMInputStream(File file)
获得BOM输入流,用于处理带BOM头的文件
|
static BufferedReader |
getBOMReader(File file)
读取带BOM头的文件为Reader
|
static String |
getCanonicalPath(File file)
获取规范的绝对路径
|
static BufferedInputStream |
getInputStream(File file)
获得输入流
|
static BufferedInputStream |
getInputStream(String path)
获得输入流
|
static String |
getLineSeparator()
获取当前系统的换行分隔符
Windows: \r\n
Mac: \r
Linux: \n
|
static String |
getMimeType(String filePath)
根据文件扩展名获得MimeType
|
static String |
getName(File file)
返回文件名
|
static String |
getName(String filePath)
返回文件名
"d:/test/aaa" 返回 "aaa" "/test/aaa.jpg" 返回 "aaa.jpg" |
static BufferedOutputStream |
getOutputStream(File file)
获得一个输出流对象
|
static BufferedOutputStream |
getOutputStream(String path)
获得一个输出流对象
|
static File |
getParent(File file,
int level)
获取指定层级的父路径
getParent(file("d:/aaa/bbb/cc/ddd", 0)) -》 "d:/aaa/bbb/cc/ddd"
getParent(file("d:/aaa/bbb/cc/ddd", 2)) -》 "d:/aaa/bbb"
getParent(file("d:/aaa/bbb/cc/ddd", 4)) -》 "d:/"
getParent(file("d:/aaa/bbb/cc/ddd", 5)) -》 null
|
static String |
getParent(String filePath,
int level)
获取指定层级的父路径
getParent("d:/aaa/bbb/cc/ddd", 0) -》 "d:/aaa/bbb/cc/ddd"
getParent("d:/aaa/bbb/cc/ddd", 2) -》 "d:/aaa/bbb"
getParent("d:/aaa/bbb/cc/ddd", 4) -》 "d:/"
getParent("d:/aaa/bbb/cc/ddd", 5) -》 null
|
static String |
getPrefix(File file)
返回主文件名
|
static String |
getPrefix(String fileName)
返回主文件名
|
static PrintWriter |
getPrintWriter(File file,
Charset charset,
boolean isAppend)
获得一个打印写入对象,可以有print
|
static PrintWriter |
getPrintWriter(File file,
String charset,
boolean isAppend)
获得一个打印写入对象,可以有print
|
static PrintWriter |
getPrintWriter(String path,
Charset charset,
boolean isAppend)
获得一个打印写入对象,可以有print
|
static PrintWriter |
getPrintWriter(String path,
String charset,
boolean isAppend)
获得一个打印写入对象,可以有print
|
static BufferedReader |
getReader(File file,
Charset charset)
获得一个文件读取器
|
static BufferedReader |
getReader(File file,
String charsetName)
Deprecated.
|
static BufferedReader |
getReader(String path,
Charset charset)
获得一个文件读取器
|
static BufferedReader |
getReader(String path,
String charsetName)
Deprecated.
|
static String |
getSuffix(File file)
获取文件后缀名,扩展名不带“.”
|
static String |
getSuffix(String fileName)
获得文件后缀名,扩展名不带“.”
|
static File |
getTmpDir()
获取临时文件目录
|
static String |
getTmpDirPath()
获取临时文件路径(绝对路径)
|
static int |
getTotalLines(File file)
计算文件的总行数
参考:https://stackoverflow.com/questions/453018/number-of-lines-in-a-file-in-java |
static int |
getTotalLines(File file,
int bufferSize)
计算文件的总行数
参考:https://stackoverflow.com/questions/453018/number-of-lines-in-a-file-in-java |
static String |
getType(File file)
根据文件流的头部信息获得文件类型
1、无法识别类型默认按照扩展名识别
2、xls、doc、msi头信息无法区分,按照扩展名区分
3、zip可能为docx、xlsx、pptx、jar、war头信息无法区分,按照扩展名区分
|
static File |
getUserHomeDir()
获取用户目录
|
static String |
getUserHomePath()
获取用户路径(绝对路径)
|
static BufferedReader |
getUtf8Reader(File file)
获得一个文件读取器
|
static BufferedReader |
getUtf8Reader(String path)
获得一个文件读取器
|
static File |
getWebRoot()
获取Web项目下的web root路径
原理是首先获取ClassPath路径,由于在web项目中ClassPath位于 WEB-INF/classes/下,故向上获取两级目录即可。 |
static BufferedWriter |
getWriter(File file,
Charset charset,
boolean isAppend)
获得一个带缓存的写入对象
|
static BufferedWriter |
getWriter(File file,
String charsetName,
boolean isAppend)
Deprecated.
|
static BufferedWriter |
getWriter(String path,
Charset charset,
boolean isAppend)
获得一个带缓存的写入对象
|
static BufferedWriter |
getWriter(String path,
String charsetName,
boolean isAppend)
Deprecated.
|
static boolean |
isAbsolutePath(String path)
给定路径已经是绝对路径
此方法并没有针对路径做标准化,建议先执行 normalize(String) 方法标准化路径后判断绝对路径判断条件是: 以/开头的路径 满足类似于 c:/xxxxx,其中祖母随意,不区分大小写 满足类似于 d:\xxxxx,其中祖母随意,不区分大小写 |
static boolean |
isDirectory(File file)
判断是否为目录,如果file为null,则返回false
|
static boolean |
isDirectory(String path)
判断是否为目录,如果path为null,则返回false
|
static boolean |
isDirEmpty(File dir)
目录是否为空
|
static boolean |
isEmpty(File file)
文件是否为空
目录:里面没有文件时为空 文件:文件大小为0时为空 |
static boolean |
isFile(File file)
判断是否为文件,如果file为null,则返回false
|
static boolean |
isFile(String path)
判断是否为文件,如果path为null,则返回false
|
static boolean |
isModifed(File file,
long lastModifyTime)
Deprecated.
拼写错误,请使用
isModified(File, long) |
static boolean |
isModified(File file,
long lastModifyTime)
判断文件是否被改动
如果文件对象为 null 或者文件不存在,被视为改动 |
static boolean |
isNotEmpty(File file)
目录是否为空
|
static boolean |
isSub(File parent,
File sub)
判断给定的目录是否为给定文件或文件夹的子目录
|
static boolean |
isSymlink(File file)
判断是否为符号链接文件
|
static boolean |
isWindows()
是否为Windows环境
|
static int |
lastIndexOfSeparator(String filePath)
获得最后一个文件路径分隔符的位置
|
static Date |
lastModifiedTime(File file)
指定文件最后修改时间
|
static Date |
lastModifiedTime(String path)
指定路径文件最后修改时间
|
static List<String> |
listFileNames(String path)
获得指定目录下所有文件
不会扫描子目录 如果用户传入相对路径,则是相对classpath的路径 如:"test/aaa"表示"${classpath}/test/aaa" |
static <T> T |
load(File file,
Charset charset,
FileReader.ReaderHandler<T> readerHandler)
按照给定的readerHandler读取文件中的数据
|
static <T> T |
load(String path,
Charset charset,
FileReader.ReaderHandler<T> readerHandler)
按照给定的readerHandler读取文件中的数据
|
static <T> T |
load(String path,
String charset,
FileReader.ReaderHandler<T> readerHandler)
按照给定的readerHandler读取文件中的数据
|
static <T> T |
loadUtf8(File file,
FileReader.ReaderHandler<T> readerHandler)
按照给定的readerHandler读取文件中的数据
|
static <T> T |
loadUtf8(String path,
FileReader.ReaderHandler<T> readerHandler)
按照给定的readerHandler读取文件中的数据
|
static List<File> |
loopFiles(File file)
递归遍历目录以及子目录中的所有文件
|
static List<File> |
loopFiles(File file,
FileFilter fileFilter)
递归遍历目录以及子目录中的所有文件
如果提供file为文件,直接返回过滤结果 |
static List<File> |
loopFiles(File file,
int maxDepth,
FileFilter fileFilter)
递归遍历目录以及子目录中的所有文件
如果提供file为文件,直接返回过滤结果 |
static List<File> |
loopFiles(String path)
递归遍历目录以及子目录中的所有文件
如果用户传入相对路径,则是相对classpath的路径 如:"test/aaa"表示"${classpath}/test/aaa" |
static List<File> |
loopFiles(String path,
FileFilter fileFilter)
递归遍历目录以及子目录中的所有文件
如果提供file为文件,直接返回过滤结果 |
static File[] |
ls(String path)
列出指定路径下的目录和文件
给定的绝对路径不能是压缩包中的路径 |
static String |
mainName(File file)
返回主文件名
|
static String |
mainName(String fileName)
返回主文件名
|
static File |
mkdir(File dir)
创建文件夹,会递归自动创建其不存在的父文件夹,如果存在直接返回此文件夹
此方法不对File对象类型做判断,如果File不存在,无法判断其类型 |
static File |
mkdir(String dirPath)
创建文件夹,如果存在直接返回此文件夹
此方法不对File对象类型做判断,如果File不存在,无法判断其类型 |
static boolean |
mkdirsSafely(File dir,
int tryCount,
long sleepMillis)
安全地级联创建目录 (确保并发环境下能创建成功)
并发环境下,假设 test 目录不存在,如果线程A mkdirs "test/A" 目录,线程B mkdirs "test/B"目录,
其中一个线程可能会失败,进而导致以下代码抛出 FileNotFoundException 异常
file.getParentFile().mkdirs(); // 父目录正在被另一个线程创建中,返回 false
file.createNewFile(); // 抛出 IO 异常,因为该线程无法感知到父目录已被创建
|
static File |
mkParentDirs(File file)
创建所给文件或目录的父目录
|
static File |
mkParentDirs(String path)
创建父文件夹,如果存在直接返回此文件夹
|
static void |
move(File src,
File target,
boolean isOverride)
移动文件或者目录
|
static void |
moveContent(File src,
File target,
boolean isOverride)
移动文件或者目录
|
static boolean |
newerThan(File file,
File reference)
给定文件或目录的最后修改时间是否晚于给定时间
|
static boolean |
newerThan(File file,
long timeMillis)
给定文件或目录的最后修改时间是否晚于给定时间
|
static File |
newFile(String path)
创建File对象,相当于调用new File(),不做任何处理
|
static String |
normalize(String path)
修复路径
如果原路径尾部有分隔符,则保留为标准分隔符(/),否则不保留 1. |
static boolean |
pathEndsWith(File file,
String suffix)
判断文件路径是否有指定后缀,忽略大小写
常用语判断扩展名 |
static boolean |
pathEquals(File file1,
File file2)
文件路径是否相同
取两个文件的绝对路径比较,在Windows下忽略大小写,在Linux下不忽略。 |
static String |
readableFileSize(File file)
可读的文件大小
|
static String |
readableFileSize(long size)
|
static byte[] |
readBytes(File file)
读取文件所有数据
文件的长度不能超过Integer.MAX_VALUE |
static byte[] |
readBytes(String filePath)
读取文件所有数据
文件的长度不能超过Integer.MAX_VALUE |
static String |
readLine(RandomAccessFile file,
Charset charset)
单行处理文件内容
|
static void |
readLine(RandomAccessFile file,
Charset charset,
LineHandler lineHandler)
单行处理文件内容
|
static List<String> |
readLines(File file,
Charset charset)
从文件中读取每一行数据
|
static void |
readLines(File file,
Charset charset,
LineHandler lineHandler)
按行处理文件内容
|
static List<String> |
readLines(File file,
Charset charset,
Predicate<String> filter)
从文件中读取每一行数据
|
static <T extends Collection<String>> |
readLines(File file,
Charset charset,
T collection)
从文件中读取每一行数据
|
static List<String> |
readLines(File file,
String charset)
从文件中读取每一行数据
|
static <T extends Collection<String>> |
readLines(File file,
String charset,
T collection)
从文件中读取每一行数据
|
static void |
readLines(RandomAccessFile file,
Charset charset,
LineHandler lineHandler)
按行处理文件内容
|
static List<String> |
readLines(String path,
Charset charset)
从文件中读取每一行数据
|
static <T extends Collection<String>> |
readLines(String path,
Charset charset,
T collection)
从文件中读取每一行数据
|
static List<String> |
readLines(String path,
String charset)
从文件中读取每一行数据
|
static <T extends Collection<String>> |
readLines(String path,
String charset,
T collection)
从文件中读取每一行数据
|
static List<String> |
readLines(URL url,
Charset charset)
从文件中读取每一行数据
|
static <T extends Collection<String>> |
readLines(URL url,
Charset charset,
T collection)
从文件中读取每一行数据
|
static List<String> |
readLines(URL url,
String charsetName)
Deprecated.
|
static <T extends Collection<String>> |
readLines(URL url,
String charsetName,
T collection)
Deprecated.
|
static String |
readString(File file,
Charset charset)
读取文件内容
|
static String |
readString(File file,
String charsetName)
Deprecated.
|
static String |
readString(String path,
Charset charset)
读取文件内容
|
static String |
readString(String path,
String charsetName)
Deprecated.
|
static String |
readString(URL url,
Charset charset)
读取文件内容
|
static String |
readString(URL url,
String charsetName)
Deprecated.
|
static List<String> |
readUtf8Lines(File file)
从文件中读取每一行数据
|
static void |
readUtf8Lines(File file,
LineHandler lineHandler)
按行处理文件内容,编码为UTF-8
|
static List<String> |
readUtf8Lines(File file,
Predicate<String> filter)
从文件中读取每一行数据
|
static <T extends Collection<String>> |
readUtf8Lines(File file,
T collection)
从文件中读取每一行数据,数据编码为UTF-8
|
static List<String> |
readUtf8Lines(String path)
从文件中读取每一行数据,编码为UTF-8
|
static <T extends Collection<String>> |
readUtf8Lines(String path,
T collection)
从文件中读取每一行的UTF-8编码数据
|
static List<String> |
readUtf8Lines(URL url)
从文件中读取每一行数据
|
static <T extends Collection<String>> |
readUtf8Lines(URL url,
T collection)
从文件中读取每一行数据,编码为UTF-8
|
static String |
readUtf8String(File file)
读取文件内容
|
static String |
readUtf8String(String path)
读取文件内容
|
static File |
rename(File file,
String newName,
boolean isOverride)
修改文件或目录的文件名,不变更路径,只是简单修改文件名,不保留扩展名。
|
static File |
rename(File file,
String newName,
boolean isRetainExt,
boolean isOverride)
修改文件或目录的文件名,不变更路径,只是简单修改文件名
重命名有两种模式: 1、isRetainExt为true时,保留原扩展名: FileUtil.rename(file, "aaa", true) xx/xx.png =》xx/aaa.png 2、isRetainExt为false时,不保留原扩展名,需要在newName中 FileUtil.rename(file, "aaa.jpg", false) xx/xx.png =》xx/aaa.jpg |
static long |
size(File file)
|
static long |
size(File file,
boolean includeDirSize)
|
static String |
subPath(String rootDir,
File file)
获得相对子路径
栗子:
dirPath: d:/aaa/bbb filePath: d:/aaa/bbb/ccc =》 ccc
dirPath: d:/Aaa/bbb filePath: d:/aaa/bbb/ccc.txt =》 ccc.txt
|
static String |
subPath(String dirPath,
String filePath)
获得相对子路径,忽略大小写
栗子:
dirPath: d:/aaa/bbb filePath: d:/aaa/bbb/ccc =》 ccc
dirPath: d:/Aaa/bbb filePath: d:/aaa/bbb/ccc.txt =》 ccc.txt
dirPath: d:/Aaa/bbb filePath: d:/aaa/bbb/ =》 ""
|
static void |
tail(File file,
Charset charset)
文件内容跟随器,实现类似Linux下"tail -f"命令功能
此方法会阻塞当前线程 |
static void |
tail(File file,
Charset charset,
LineHandler handler)
文件内容跟随器,实现类似Linux下"tail -f"命令功能
此方法会阻塞当前线程 |
static void |
tail(File file,
LineHandler handler)
文件内容跟随器,实现类似Linux下"tail -f"命令功能
此方法会阻塞当前线程 |
static File |
touch(File file)
创建文件及其父目录,如果这个文件存在,直接返回这个文件
此方法不对File对象类型做判断,如果File不存在,无法判断其类型 |
static File |
touch(File parent,
String path)
创建文件及其父目录,如果这个文件存在,直接返回这个文件
此方法不对File对象类型做判断,如果File不存在,无法判断其类型 |
static File |
touch(String path)
创建文件及其父目录,如果这个文件存在,直接返回这个文件
此方法不对File对象类型做判断,如果File不存在,无法判断其类型 |
static File |
touch(String parent,
String path)
创建文件及其父目录,如果这个文件存在,直接返回这个文件
此方法不对File对象类型做判断,如果File不存在,无法判断其类型 |
static void |
walkFiles(File file,
Consumer<File> consumer)
递归遍历目录并处理目录下的文件,可以处理目录或文件:
非目录则直接调用
Consumer 处理
目录则递归调用此方法处理
|
static File |
writeBytes(byte[] data,
File dest)
写数据到文件中
|
static File |
writeBytes(byte[] data,
File dest,
int off,
int len,
boolean isAppend)
写入数据到文件
|
static File |
writeBytes(byte[] data,
String path)
写数据到文件中
文件路径如果是相对路径,则相对ClassPath |
static File |
writeFromStream(InputStream in,
File dest)
将流的内容写入文件
此方法会自动关闭输入流 |
static File |
writeFromStream(InputStream in,
File dest,
boolean isCloseIn)
将流的内容写入文件
|
static File |
writeFromStream(InputStream in,
String fullFilePath)
将流的内容写入文件
此方法会自动关闭输入流 |
static <T> File |
writeLines(Collection<T> list,
File file,
Charset charset)
将列表写入文件,覆盖模式
|
static <T> File |
writeLines(Collection<T> list,
File file,
Charset charset,
boolean isAppend)
将列表写入文件
|
static <T> File |
writeLines(Collection<T> list,
File file,
String charset)
将列表写入文件,覆盖模式
|
static <T> File |
writeLines(Collection<T> list,
File file,
String charset,
boolean isAppend)
将列表写入文件
|
static <T> File |
writeLines(Collection<T> list,
String path,
Charset charset)
将列表写入文件,覆盖模式
|
static <T> File |
writeLines(Collection<T> list,
String path,
Charset charset,
boolean isAppend)
将列表写入文件
|
static <T> File |
writeLines(Collection<T> list,
String path,
String charset)
将列表写入文件,覆盖模式
|
static <T> File |
writeLines(Collection<T> list,
String path,
String charset,
boolean isAppend)
将列表写入文件
|
static File |
writeMap(Map<?,?> map,
File file,
Charset charset,
String kvSeparator,
boolean isAppend)
将Map写入文件,每个键值对为一行,一行中键与值之间使用kvSeparator分隔
|
static File |
writeString(String content,
File file,
Charset charset)
将String写入文件,覆盖模式
|
static File |
writeString(String content,
File file,
String charset)
将String写入文件,覆盖模式
|
static File |
writeString(String content,
String path,
Charset charset)
将String写入文件,覆盖模式
|
static File |
writeString(String content,
String path,
String charset)
将String写入文件,覆盖模式
|
static long |
writeToStream(File file,
OutputStream out)
将文件写入流中,此方法不会关闭输出流
|
static long |
writeToStream(String fullFilePath,
OutputStream out)
将路径对应文件写入流中,此方法不会关闭输出流
|
static <T> File |
writeUtf8Lines(Collection<T> list,
File file)
将列表写入文件,覆盖模式,编码为UTF-8
|
static <T> File |
writeUtf8Lines(Collection<T> list,
String path)
将列表写入文件,覆盖模式,编码为UTF-8
|
static File |
writeUtf8Map(Map<?,?> map,
File file,
String kvSeparator,
boolean isAppend)
将Map写入文件,每个键值对为一行,一行中键与值之间使用kvSeparator分隔
|
static File |
writeUtf8String(String content,
File file)
将String写入文件,覆盖模式,字符集为UTF-8
|
static File |
writeUtf8String(String content,
String path)
将String写入文件,覆盖模式,字符集为UTF-8
|
copy, copyContent, copyFile, copyFile, copyFile, copyFile, createTempFile, del, delFile, equals, exists, getAttributes, getFileVisitOption, getInputStream, getLastPathEle, getLinkOptions, getMimeType, getName, getOutputStream, getPathEle, getReader, getUtf8Reader, isDirectory, isDirectory, isDirEmpty, isExistsAndNotDirectory, isFile, isSub, isSymlink, loopFiles, loopFiles, loopFiles, mkdir, mkParentDirs, move, moveContent, readBytes, rename, subPath, toAbsNormal, walkFiles, walkFiles, walkFiles
public static final String CLASS_EXT
public static final String JAR_FILE_EXT
public static final String JAR_PATH_EXT
public static final String PATH_FILE_PRE
public static final String FILE_SEPARATOR
'/'
; 在Windows下是 '\'
public static final String PATH_SEPARATOR
':'
; 在Windows下是 ';'
public static boolean isWindows()
public static File[] ls(String path)
path
- 目录绝对路径或者相对路径public static boolean isEmpty(File file)
file
- 文件public static boolean isNotEmpty(File file)
file
- 目录public static boolean isDirEmpty(File dir)
dir
- 目录public static List<File> loopFiles(String path, FileFilter fileFilter)
path
- 当前遍历文件或目录的路径fileFilter
- 文件过滤规则对象,选择要保留的文件,只对文件有效,不过滤目录public static List<File> loopFiles(File file, FileFilter fileFilter)
file
- 当前遍历文件或目录fileFilter
- 文件过滤规则对象,选择要保留的文件,只对文件有效,不过滤目录public static void walkFiles(File file, Consumer<File> consumer)
Consumer
处理file
- 文件或目录,文件直接处理consumer
- 文件处理器,只会处理文件public static List<File> loopFiles(File file, int maxDepth, FileFilter fileFilter)
file
- 当前遍历文件或目录maxDepth
- 遍历最大深度,-1表示遍历到没有目录为止fileFilter
- 文件过滤规则对象,选择要保留的文件,只对文件有效,不过滤目录,null表示接收全部文件public static List<File> loopFiles(String path)
path
- 相对ClassPath的目录或者绝对路径目录public static List<File> loopFiles(File file)
file
- 当前遍历文件public static List<String> listFileNames(String path) throws IORuntimeException
path
- 相对ClassPath的目录或者绝对路径目录IORuntimeException
- IO异常public static File newFile(String path)
path
- 文件路径,相对路径表示相对项目路径public static File file(String path)
path
- 相对ClassPath的目录或者绝对路径目录public static File file(String parent, String path)
parent
- 父目录path
- 文件路径public static File file(File parent, String path)
parent
- 父文件对象path
- 文件路径public static File file(File directory, String... names)
directory
- 父目录names
- 元素名(多层目录名),由外到内依次传入public static File file(String... names)
元素名(多层目录名)
names
- 多层文件的文件名,由外到内依次传入public static String getTmpDirPath()
public static File getTmpDir()
public static String getUserHomePath()
public static File getUserHomeDir()
public static boolean exist(String path)
path
- 文件路径public static boolean exist(File file)
file
- 文件public static boolean exist(String directory, String regexp)
directory
- 文件夹路径regexp
- 文件夹中所包含文件名的正则表达式public static Date lastModifiedTime(File file)
file
- 文件public static Date lastModifiedTime(String path)
path
- 绝对路径public static long size(File file)
file
- 目录或文件,null或者文件不存在返回0public static long size(File file, boolean includeDirSize)
file
- 目录或文件,null或者文件不存在返回0includeDirSize
- 是否包括每层目录本身的大小public static int getTotalLines(File file)
file
- 文件public static int getTotalLines(File file, int bufferSize)
file
- 文件bufferSize
- 缓存大小,小于1则使用默认的1024public static boolean newerThan(File file, File reference)
file
- 文件或目录reference
- 参照文件public static boolean newerThan(File file, long timeMillis)
file
- 文件或目录timeMillis
- 做为对比的时间public static File touch(String path) throws IORuntimeException
path
- 相对ClassPath的目录或者绝对路径目录,使用POSIX风格IORuntimeException
- IO异常public static File touch(File file) throws IORuntimeException
file
- 文件对象IORuntimeException
- IO异常public static File touch(File parent, String path) throws IORuntimeException
parent
- 父文件对象path
- 文件路径IORuntimeException
- IO异常public static File touch(String parent, String path) throws IORuntimeException
parent
- 父文件对象path
- 文件路径IORuntimeException
- IO异常public static File mkParentDirs(File file)
file
- 文件或目录public static File mkParentDirs(String path)
path
- 文件夹路径,使用POSIX格式,无论哪个平台public static boolean del(String fullFileOrDirPath) throws IORuntimeException
fullFileOrDirPath
- 文件或者目录的路径IORuntimeException
- IO异常public static boolean del(File file) throws IORuntimeException
从5.7.6开始,删除文件使用Files.delete(Path)
代替 File.delete()
因为前者遇到文件被占用等原因时,抛出异常,而非返回false,异常会指明具体的失败原因。
file
- 文件对象IORuntimeException
- IO异常Files.delete(Path)
public static boolean clean(String dirPath) throws IORuntimeException
dirPath
- 文件夹路径IORuntimeException
- IO异常public static boolean clean(File directory) throws IORuntimeException
directory
- 文件夹IORuntimeException
- IO异常public static boolean cleanEmpty(File directory) throws IORuntimeException
directory
- 文件夹IORuntimeException
- IO异常public static File mkdir(String dirPath)
dirPath
- 文件夹路径,使用POSIX格式,无论哪个平台public static File mkdir(File dir)
dir
- 目录public static boolean mkdirsSafely(File dir, int tryCount, long sleepMillis)
并发环境下,假设 test 目录不存在,如果线程A mkdirs "test/A" 目录,线程B mkdirs "test/B"目录, 其中一个线程可能会失败,进而导致以下代码抛出 FileNotFoundException 异常 file.getParentFile().mkdirs(); // 父目录正在被另一个线程创建中,返回 false file.createNewFile(); // 抛出 IO 异常,因为该线程无法感知到父目录已被创建
dir
- 待创建的目录tryCount
- 最大尝试次数sleepMillis
- 线程等待的毫秒数public static File createTempFile(File dir) throws IORuntimeException
dir
- 临时文件创建的所在目录IORuntimeException
- IO异常public static File createTempFile() throws IORuntimeException
java.io.tmpdir
指定。
在 UNIX 系统上,此属性的默认值通常是 "tmp"
或 "vartmp"
;
在 Microsoft Windows 系统上,它通常是 "C:\\WINNT\\TEMP"
。
调用 Java 虚拟机时,可以为该系统属性赋予不同的值,但不保证对该属性的编程更改对该方法使用的临时目录有任何影响。IORuntimeException
- IO异常public static File createTempFile(String suffix, boolean isReCreat) throws IORuntimeException
java.io.tmpdir
指定。
在 UNIX 系统上,此属性的默认值通常是 "tmp"
或 "vartmp"
;
在 Microsoft Windows 系统上,它通常是 "C:\\WINNT\\TEMP"
。
调用 Java 虚拟机时,可以为该系统属性赋予不同的值,但不保证对该属性的编程更改对该方法使用的临时目录有任何影响。suffix
- 后缀,如果null则使用默认.tmpisReCreat
- 是否重新创建文件(删掉原来的,创建新的)IORuntimeException
- IO异常public static File createTempFile(String prefix, String suffix, boolean isReCreat) throws IORuntimeException
java.io.tmpdir
指定。
在 UNIX 系统上,此属性的默认值通常是 "tmp"
或 "vartmp"
;
在 Microsoft Windows 系统上,它通常是 "C:\\WINNT\\TEMP"
。
调用 Java 虚拟机时,可以为该系统属性赋予不同的值,但不保证对该属性的编程更改对该方法使用的临时目录有任何影响。prefix
- 前缀,至少3个字符suffix
- 后缀,如果null则使用默认.tmpisReCreat
- 是否重新创建文件(删掉原来的,创建新的)IORuntimeException
- IO异常public static File createTempFile(File dir, boolean isReCreat) throws IORuntimeException
dir
- 临时文件创建的所在目录isReCreat
- 是否重新创建文件(删掉原来的,创建新的)IORuntimeException
- IO异常public static File createTempFile(String prefix, String suffix, File dir, boolean isReCreat) throws IORuntimeException
prefix
- 前缀,至少3个字符suffix
- 后缀,如果null则使用默认.tmpdir
- 临时文件创建的所在目录isReCreat
- 是否重新创建文件(删掉原来的,创建新的)IORuntimeException
- IO异常public static File copyFile(String src, String dest, StandardCopyOption... options) throws IORuntimeException
src
- 源文件路径dest
- 目标文件或目录路径,如果为目录使用与源文件相同的文件名options
- StandardCopyOption
IORuntimeException
- IO异常public static File copyFile(Resource src, File dest, StandardCopyOption... options) throws IORuntimeException
src
- 源文件dest
- 目标文件或目录,如果为目录使用与源文件相同的文件名options
- StandardCopyOption
IORuntimeException
- IO异常public static File copyFile(InputStream src, File dest, StandardCopyOption... options) throws IORuntimeException
src
- 源文件流,使用后不关闭dest
- 目标文件,不存在自动创建options
- StandardCopyOption
IORuntimeException
- IO异常public static File copyFile(File src, File dest, StandardCopyOption... options) throws IORuntimeException
src
- 源文件dest
- 目标文件或目录,如果为目录使用与源文件相同的文件名options
- StandardCopyOption
IORuntimeException
- IO异常public static File copy(String srcPath, String destPath, boolean isOverride) throws IORuntimeException
srcPath
- 源文件或目录destPath
- 目标文件或目录,目标不存在会自动创建(目录、文件都创建)isOverride
- 是否覆盖目标文件IORuntimeException
- IO异常public static File copy(File src, File dest, boolean isOverride) throws IORuntimeException
1、src和dest都为目录,则将src目录及其目录下所有文件目录拷贝到dest下 2、src和dest都为文件,直接复制,名字为dest 3、src为文件,dest为目录,将src拷贝到dest目录下
src
- 源文件dest
- 目标文件或目录,目标不存在会自动创建(目录、文件都创建)isOverride
- 是否覆盖目标文件IORuntimeException
- IO异常public static File copyContent(File src, File dest, boolean isOverride) throws IORuntimeException
1、src和dest都为目录,则将src下所有文件目录拷贝到dest下 2、src和dest都为文件,直接复制,名字为dest 3、src为文件,dest为目录,将src拷贝到dest目录下
src
- 源文件dest
- 目标文件或目录,目标不存在会自动创建(目录、文件都创建)isOverride
- 是否覆盖目标文件IORuntimeException
- IO异常public static File copyFilesFromDir(File src, File dest, boolean isOverride) throws IORuntimeException
1、src和dest都为目录,则将src下所有文件(不包括子目录)拷贝到dest下 2、src和dest都为文件,直接复制,名字为dest 3、src为文件,dest为目录,将src拷贝到dest目录下
src
- 源文件dest
- 目标文件或目录,目标不存在会自动创建(目录、文件都创建)isOverride
- 是否覆盖目标文件IORuntimeException
- IO异常public static void move(File src, File target, boolean isOverride) throws IORuntimeException
src
- 源文件或者目录target
- 目标文件或者目录isOverride
- 是否覆盖目标,只有目标为文件才覆盖IORuntimeException
- IO异常PathUtil.move(Path, Path, boolean)
public static void moveContent(File src, File target, boolean isOverride) throws IORuntimeException
src
- 源文件或者目录target
- 目标文件或者目录isOverride
- 是否覆盖目标,只有目标为文件才覆盖IORuntimeException
- IO异常PathUtil.moveContent(Path, Path, boolean)
public static File rename(File file, String newName, boolean isOverride)
FileUtil.rename(file, "aaa.png", true) xx/xx.png =》xx/aaa.png
file
- 被修改的文件newName
- 新的文件名,如需扩展名,需自行在此参数加上,原文件名的扩展名不会被保留isOverride
- 是否覆盖目标文件public static File rename(File file, String newName, boolean isRetainExt, boolean isOverride)
FileUtil.rename(file, "aaa", true) xx/xx.png =》xx/aaa.png
2、isRetainExt为false时,不保留原扩展名,需要在newName中
FileUtil.rename(file, "aaa.jpg", false) xx/xx.png =》xx/aaa.jpg
file
- 被修改的文件newName
- 新的文件名,可选是否包括扩展名isRetainExt
- 是否保留原文件的扩展名,如果保留,则newName不需要加扩展名isOverride
- 是否覆盖目标文件PathUtil.rename(Path, String, boolean)
public static String getCanonicalPath(File file)
file
- 文件public static String getAbsolutePath(String path, Class<?> baseClass)
path
- 相对路径baseClass
- 相对路径所相对的类public static String getAbsolutePath(String path)
path
- 相对路径public static String getAbsolutePath(File file)
file
- 文件public static boolean isAbsolutePath(String path)
normalize(String)
方法标准化路径后判断path
- 需要检查的Pathpublic static boolean isDirectory(String path)
path
- 文件路径public static boolean isDirectory(File file)
file
- 文件public static boolean isFile(String path)
path
- 文件路径public static boolean isFile(File file)
file
- 文件public static boolean equals(File file1, File file2) throws IORuntimeException
file1
- 文件1file2
- 文件2IORuntimeException
- IO异常public static boolean contentEquals(File file1, File file2) throws IORuntimeException
file1
- 文件1file2
- 文件2IORuntimeException
- IO异常public static boolean contentEqualsIgnoreEOL(File file1, File file2, Charset charset) throws IORuntimeException
file1
- 文件1file2
- 文件2charset
- 编码,null表示使用平台默认编码 两个文件内容一致返回true,否则falseIORuntimeException
- IO异常public static boolean pathEquals(File file1, File file2)
file1
- 文件1file2
- 文件2public static int lastIndexOfSeparator(String filePath)
filePath
- 文件路径@Deprecated public static boolean isModifed(File file, long lastModifyTime)
isModified(File, long)
file
- 文件对象lastModifyTime
- 上次的改动时间public static boolean isModified(File file, long lastModifyTime)
file
- 文件对象lastModifyTime
- 上次的改动时间public static String normalize(String path)
栗子:
"/foo//" =》 "/foo/" "/foo/./" =》 "/foo/" "/foo/../bar" =》 "/bar" "/foo/../bar/" =》 "/bar/" "/foo/../bar/../baz" =》 "/baz" "/../" =》 "/" "foo/bar/.." =》 "foo" "foo/../bar" =》 "bar" "foo/../../bar" =》 "bar" "//server/foo/../bar" =》 "/server/bar" "//server/../bar" =》 "/bar" "C:\\foo\\..\\bar" =》 "C:/bar" "C:\\..\\bar" =》 "C:/bar" "~/foo/../bar/" =》 "~/bar/" "~/../bar" =》 普通用户运行是'bar的home目录',ROOT用户运行是'/bar'
path
- 原路径public static String subPath(String rootDir, File file)
栗子:
dirPath: d:/aaa/bbb filePath: d:/aaa/bbb/ccc =》 ccc dirPath: d:/Aaa/bbb filePath: d:/aaa/bbb/ccc.txt =》 ccc.txt
rootDir
- 绝对父路径file
- 文件public static String subPath(String dirPath, String filePath)
栗子:
dirPath: d:/aaa/bbb filePath: d:/aaa/bbb/ccc =》 ccc dirPath: d:/Aaa/bbb filePath: d:/aaa/bbb/ccc.txt =》 ccc.txt dirPath: d:/Aaa/bbb filePath: d:/aaa/bbb/ =》 ""
dirPath
- 父路径filePath
- 文件路径public static String getName(File file)
file
- 文件FileNameUtil.getName(File)
public static String getName(String filePath)
"d:/test/aaa" 返回 "aaa" "/test/aaa.jpg" 返回 "aaa.jpg"
filePath
- 文件FileNameUtil.getName(String)
public static String getSuffix(File file)
file
- 文件FileNameUtil.getSuffix(File)
public static String getSuffix(String fileName)
fileName
- 文件名FileNameUtil.getSuffix(String)
public static String getPrefix(File file)
file
- 文件FileNameUtil.getPrefix(File)
public static String getPrefix(String fileName)
fileName
- 完整文件名FileNameUtil.getPrefix(String)
public static String mainName(File file)
file
- 文件FileNameUtil.mainName(File)
public static String mainName(String fileName)
fileName
- 完整文件名FileNameUtil.mainName(String)
public static String extName(File file)
file
- 文件FileNameUtil.extName(File)
public static String extName(String fileName)
fileName
- 文件名FileNameUtil.extName(String)
public static boolean pathEndsWith(File file, String suffix)
file
- 文件或目录suffix
- 后缀public static String getType(File file) throws IORuntimeException
1、无法识别类型默认按照扩展名识别 2、xls、doc、msi头信息无法区分,按照扩展名区分 3、zip可能为docx、xlsx、pptx、jar、war头信息无法区分,按照扩展名区分
file
- 文件 File
null
IORuntimeException
- IO异常FileTypeUtil.getType(File)
public static BufferedInputStream getInputStream(File file) throws IORuntimeException
file
- 文件IORuntimeException
- 文件未找到public static BufferedInputStream getInputStream(String path) throws IORuntimeException
path
- 文件路径IORuntimeException
- 文件未找到public static BOMInputStream getBOMInputStream(File file) throws IORuntimeException
file
- 文件IORuntimeException
- 文件未找到public static BufferedReader getBOMReader(File file)
file
- 文件public static BufferedReader getUtf8Reader(File file) throws IORuntimeException
file
- 文件IORuntimeException
- IO异常public static BufferedReader getUtf8Reader(String path) throws IORuntimeException
path
- 文件路径IORuntimeException
- IO异常@Deprecated public static BufferedReader getReader(File file, String charsetName) throws IORuntimeException
getReader(File, Charset)
file
- 文件charsetName
- 字符集IORuntimeException
- IO异常public static BufferedReader getReader(File file, Charset charset) throws IORuntimeException
file
- 文件charset
- 字符集IORuntimeException
- IO异常@Deprecated public static BufferedReader getReader(String path, String charsetName) throws IORuntimeException
getReader(String, Charset)
path
- 绝对路径charsetName
- 字符集IORuntimeException
- IO异常public static BufferedReader getReader(String path, Charset charset) throws IORuntimeException
path
- 绝对路径charset
- 字符集IORuntimeException
- IO异常public static byte[] readBytes(File file) throws IORuntimeException
file
- 文件IORuntimeException
- IO异常public static byte[] readBytes(String filePath) throws IORuntimeException
filePath
- 文件路径IORuntimeException
- IO异常public static String readUtf8String(File file) throws IORuntimeException
file
- 文件IORuntimeException
- IO异常public static String readUtf8String(String path) throws IORuntimeException
path
- 文件路径IORuntimeException
- IO异常@Deprecated public static String readString(File file, String charsetName) throws IORuntimeException
readString(File, Charset)
file
- 文件charsetName
- 字符集IORuntimeException
- IO异常public static String readString(File file, Charset charset) throws IORuntimeException
file
- 文件charset
- 字符集IORuntimeException
- IO异常@Deprecated public static String readString(String path, String charsetName) throws IORuntimeException
readString(String, Charset)
path
- 文件路径charsetName
- 字符集IORuntimeException
- IO异常public static String readString(String path, Charset charset) throws IORuntimeException
path
- 文件路径charset
- 字符集IORuntimeException
- IO异常@Deprecated public static String readString(URL url, String charsetName) throws IORuntimeException
readString(URL, Charset)
url
- 文件URLcharsetName
- 字符集IORuntimeException
- IO异常public static String readString(URL url, Charset charset) throws IORuntimeException
url
- 文件URLcharset
- 字符集IORuntimeException
- IO异常public static <T extends Collection<String>> T readUtf8Lines(String path, T collection) throws IORuntimeException
T
- 集合类型path
- 文件路径collection
- 集合IORuntimeException
- IO异常public static <T extends Collection<String>> T readLines(String path, String charset, T collection) throws IORuntimeException
T
- 集合类型path
- 文件路径charset
- 字符集collection
- 集合IORuntimeException
- IO异常public static <T extends Collection<String>> T readLines(String path, Charset charset, T collection) throws IORuntimeException
T
- 集合类型path
- 文件路径charset
- 字符集collection
- 集合IORuntimeException
- IO异常public static <T extends Collection<String>> T readUtf8Lines(File file, T collection) throws IORuntimeException
T
- 集合类型file
- 文件路径collection
- 集合IORuntimeException
- IO异常public static <T extends Collection<String>> T readLines(File file, String charset, T collection) throws IORuntimeException
T
- 集合类型file
- 文件路径charset
- 字符集collection
- 集合IORuntimeException
- IO异常public static <T extends Collection<String>> T readLines(File file, Charset charset, T collection) throws IORuntimeException
T
- 集合类型file
- 文件路径charset
- 字符集collection
- 集合IORuntimeException
- IO异常public static <T extends Collection<String>> T readUtf8Lines(URL url, T collection) throws IORuntimeException
T
- 集合类型url
- 文件的URLcollection
- 集合IORuntimeException
- IO异常@Deprecated public static <T extends Collection<String>> T readLines(URL url, String charsetName, T collection) throws IORuntimeException
readLines(URL, Charset, Collection)
T
- 集合类型url
- 文件的URLcharsetName
- 字符集collection
- 集合IORuntimeException
- IO异常public static <T extends Collection<String>> T readLines(URL url, Charset charset, T collection) throws IORuntimeException
T
- 集合类型url
- 文件的URLcharset
- 字符集collection
- 集合IORuntimeException
- IO异常public static List<String> readUtf8Lines(URL url) throws IORuntimeException
url
- 文件的URLIORuntimeException
- IO异常@Deprecated public static List<String> readLines(URL url, String charsetName) throws IORuntimeException
readLines(URL, Charset)
url
- 文件的URLcharsetName
- 字符集IORuntimeException
- IO异常public static List<String> readLines(URL url, Charset charset) throws IORuntimeException
url
- 文件的URLcharset
- 字符集IORuntimeException
- IO异常public static List<String> readUtf8Lines(String path) throws IORuntimeException
path
- 文件路径IORuntimeException
- IO异常public static List<String> readLines(String path, String charset) throws IORuntimeException
path
- 文件路径charset
- 字符集IORuntimeException
- IO异常public static List<String> readLines(String path, Charset charset) throws IORuntimeException
path
- 文件路径charset
- 字符集IORuntimeException
- IO异常public static List<String> readUtf8Lines(File file) throws IORuntimeException
file
- 文件IORuntimeException
- IO异常public static List<String> readUtf8Lines(File file, Predicate<String> filter) throws IORuntimeException
file
- 文件filter
- 过滤器IORuntimeException
- IO异常public static List<String> readLines(File file, String charset) throws IORuntimeException
file
- 文件charset
- 字符集IORuntimeException
- IO异常public static List<String> readLines(File file, Charset charset) throws IORuntimeException
file
- 文件charset
- 字符集IORuntimeException
- IO异常public static List<String> readLines(File file, Charset charset, Predicate<String> filter) throws IORuntimeException
file
- 文件charset
- 字符集filter
- 过滤器IORuntimeException
- IO异常public static void readUtf8Lines(File file, LineHandler lineHandler) throws IORuntimeException
file
- 文件lineHandler
- LineHandler
行处理器IORuntimeException
- IO异常public static void readLines(File file, Charset charset, LineHandler lineHandler) throws IORuntimeException
file
- 文件charset
- 编码lineHandler
- LineHandler
行处理器IORuntimeException
- IO异常public static void readLines(RandomAccessFile file, Charset charset, LineHandler lineHandler)
file
- RandomAccessFile
文件charset
- 编码lineHandler
- LineHandler
行处理器IORuntimeException
- IO异常public static void readLine(RandomAccessFile file, Charset charset, LineHandler lineHandler)
file
- RandomAccessFile
文件charset
- 编码lineHandler
- LineHandler
行处理器IORuntimeException
- IO异常public static String readLine(RandomAccessFile file, Charset charset)
file
- RandomAccessFile
文件charset
- 编码IORuntimeException
- IO异常public static <T> T loadUtf8(String path, FileReader.ReaderHandler<T> readerHandler) throws IORuntimeException
T
- 集合类型readerHandler
- Reader处理类path
- 文件的绝对路径IORuntimeException
- IO异常public static <T> T load(String path, String charset, FileReader.ReaderHandler<T> readerHandler) throws IORuntimeException
T
- 集合类型readerHandler
- Reader处理类path
- 文件的绝对路径charset
- 字符集IORuntimeException
- IO异常public static <T> T load(String path, Charset charset, FileReader.ReaderHandler<T> readerHandler) throws IORuntimeException
T
- 集合类型readerHandler
- Reader处理类path
- 文件的绝对路径charset
- 字符集IORuntimeException
- IO异常public static <T> T loadUtf8(File file, FileReader.ReaderHandler<T> readerHandler) throws IORuntimeException
T
- 集合类型readerHandler
- Reader处理类file
- 文件IORuntimeException
- IO异常public static <T> T load(File file, Charset charset, FileReader.ReaderHandler<T> readerHandler) throws IORuntimeException
T
- 集合类型readerHandler
- Reader处理类file
- 文件charset
- 字符集IORuntimeException
- IO异常public static BufferedOutputStream getOutputStream(File file) throws IORuntimeException
file
- 文件IORuntimeException
- IO异常public static BufferedOutputStream getOutputStream(String path) throws IORuntimeException
path
- 输出到的文件路径,绝对路径IORuntimeException
- IO异常@Deprecated public static BufferedWriter getWriter(String path, String charsetName, boolean isAppend) throws IORuntimeException
getWriter(String, Charset, boolean)
path
- 输出路径,绝对路径charsetName
- 字符集isAppend
- 是否追加IORuntimeException
- IO异常public static BufferedWriter getWriter(String path, Charset charset, boolean isAppend) throws IORuntimeException
path
- 输出路径,绝对路径charset
- 字符集isAppend
- 是否追加IORuntimeException
- IO异常@Deprecated public static BufferedWriter getWriter(File file, String charsetName, boolean isAppend) throws IORuntimeException
getWriter(File, Charset, boolean)
file
- 输出文件charsetName
- 字符集isAppend
- 是否追加IORuntimeException
- IO异常public static BufferedWriter getWriter(File file, Charset charset, boolean isAppend) throws IORuntimeException
file
- 输出文件charset
- 字符集isAppend
- 是否追加IORuntimeException
- IO异常public static PrintWriter getPrintWriter(String path, String charset, boolean isAppend) throws IORuntimeException
path
- 输出路径,绝对路径charset
- 字符集isAppend
- 是否追加IORuntimeException
- IO异常public static PrintWriter getPrintWriter(String path, Charset charset, boolean isAppend) throws IORuntimeException
path
- 输出路径,绝对路径charset
- 字符集isAppend
- 是否追加IORuntimeException
- IO异常public static PrintWriter getPrintWriter(File file, String charset, boolean isAppend) throws IORuntimeException
file
- 文件charset
- 字符集isAppend
- 是否追加IORuntimeException
- IO异常public static PrintWriter getPrintWriter(File file, Charset charset, boolean isAppend) throws IORuntimeException
file
- 文件charset
- 字符集isAppend
- 是否追加IORuntimeException
- IO异常public static String getLineSeparator()
Windows: \r\n Mac: \r Linux: \n
public static File writeUtf8String(String content, String path) throws IORuntimeException
content
- 写入的内容path
- 文件路径IORuntimeException
- IO异常public static File writeUtf8String(String content, File file) throws IORuntimeException
content
- 写入的内容file
- 文件IORuntimeException
- IO异常public static File writeString(String content, String path, String charset) throws IORuntimeException
content
- 写入的内容path
- 文件路径charset
- 字符集IORuntimeException
- IO异常public static File writeString(String content, String path, Charset charset) throws IORuntimeException
content
- 写入的内容path
- 文件路径charset
- 字符集IORuntimeException
- IO异常public static File writeString(String content, File file, String charset) throws IORuntimeException
content
- 写入的内容file
- 文件charset
- 字符集IORuntimeException
- IO异常public static File writeString(String content, File file, Charset charset) throws IORuntimeException
content
- 写入的内容file
- 文件charset
- 字符集IORuntimeException
- IO异常public static File appendUtf8String(String content, String path) throws IORuntimeException
content
- 写入的内容path
- 文件路径IORuntimeException
- IO异常public static File appendString(String content, String path, String charset) throws IORuntimeException
content
- 写入的内容path
- 文件路径charset
- 字符集IORuntimeException
- IO异常public static File appendString(String content, String path, Charset charset) throws IORuntimeException
content
- 写入的内容path
- 文件路径charset
- 字符集IORuntimeException
- IO异常public static File appendUtf8String(String content, File file) throws IORuntimeException
content
- 写入的内容file
- 文件IORuntimeException
- IO异常public static File appendString(String content, File file, String charset) throws IORuntimeException
content
- 写入的内容file
- 文件charset
- 字符集IORuntimeException
- IO异常public static File appendString(String content, File file, Charset charset) throws IORuntimeException
content
- 写入的内容file
- 文件charset
- 字符集IORuntimeException
- IO异常public static <T> File writeUtf8Lines(Collection<T> list, String path) throws IORuntimeException
T
- 集合元素类型list
- 列表path
- 绝对路径IORuntimeException
- IO异常public static <T> File writeUtf8Lines(Collection<T> list, File file) throws IORuntimeException
T
- 集合元素类型list
- 列表file
- 绝对路径IORuntimeException
- IO异常public static <T> File writeLines(Collection<T> list, String path, String charset) throws IORuntimeException
T
- 集合元素类型list
- 列表path
- 绝对路径charset
- 字符集IORuntimeException
- IO异常public static <T> File writeLines(Collection<T> list, String path, Charset charset) throws IORuntimeException
T
- 集合元素类型list
- 列表path
- 绝对路径charset
- 字符集IORuntimeException
- IO异常public static <T> File writeLines(Collection<T> list, File file, String charset) throws IORuntimeException
T
- 集合元素类型list
- 列表file
- 文件charset
- 字符集IORuntimeException
- IO异常public static <T> File writeLines(Collection<T> list, File file, Charset charset) throws IORuntimeException
T
- 集合元素类型list
- 列表file
- 文件charset
- 字符集IORuntimeException
- IO异常public static <T> File appendUtf8Lines(Collection<T> list, File file) throws IORuntimeException
T
- 集合元素类型list
- 列表file
- 文件IORuntimeException
- IO异常public static <T> File appendUtf8Lines(Collection<T> list, String path) throws IORuntimeException
T
- 集合元素类型list
- 列表path
- 文件路径IORuntimeException
- IO异常public static <T> File appendLines(Collection<T> list, String path, String charset) throws IORuntimeException
T
- 集合元素类型list
- 列表path
- 绝对路径charset
- 字符集IORuntimeException
- IO异常public static <T> File appendLines(Collection<T> list, File file, String charset) throws IORuntimeException
T
- 集合元素类型list
- 列表file
- 文件charset
- 字符集IORuntimeException
- IO异常public static <T> File appendLines(Collection<T> list, String path, Charset charset) throws IORuntimeException
T
- 集合元素类型list
- 列表path
- 绝对路径charset
- 字符集IORuntimeException
- IO异常public static <T> File appendLines(Collection<T> list, File file, Charset charset) throws IORuntimeException
T
- 集合元素类型list
- 列表file
- 文件charset
- 字符集IORuntimeException
- IO异常public static <T> File writeLines(Collection<T> list, String path, String charset, boolean isAppend) throws IORuntimeException
T
- 集合元素类型list
- 列表path
- 文件路径charset
- 字符集isAppend
- 是否追加IORuntimeException
- IO异常public static <T> File writeLines(Collection<T> list, String path, Charset charset, boolean isAppend) throws IORuntimeException
T
- 集合元素类型list
- 列表path
- 文件路径charset
- 字符集isAppend
- 是否追加IORuntimeException
- IO异常public static <T> File writeLines(Collection<T> list, File file, String charset, boolean isAppend) throws IORuntimeException
T
- 集合元素类型list
- 列表file
- 文件charset
- 字符集isAppend
- 是否追加IORuntimeException
- IO异常public static <T> File writeLines(Collection<T> list, File file, Charset charset, boolean isAppend) throws IORuntimeException
T
- 集合元素类型list
- 列表file
- 文件charset
- 字符集isAppend
- 是否追加IORuntimeException
- IO异常public static File writeUtf8Map(Map<?,?> map, File file, String kvSeparator, boolean isAppend) throws IORuntimeException
map
- Mapfile
- 文件kvSeparator
- 键和值之间的分隔符,如果传入null使用默认分隔符" = "isAppend
- 是否追加IORuntimeException
- IO异常public static File writeMap(Map<?,?> map, File file, Charset charset, String kvSeparator, boolean isAppend) throws IORuntimeException
map
- Mapfile
- 文件charset
- 字符集编码kvSeparator
- 键和值之间的分隔符,如果传入null使用默认分隔符" = "isAppend
- 是否追加IORuntimeException
- IO异常public static File writeBytes(byte[] data, String path) throws IORuntimeException
data
- 数据path
- 相对ClassPath的目录或者绝对路径目录IORuntimeException
- IO异常public static File writeBytes(byte[] data, File dest) throws IORuntimeException
dest
- 目标文件data
- 数据IORuntimeException
- IO异常public static File writeBytes(byte[] data, File dest, int off, int len, boolean isAppend) throws IORuntimeException
data
- 数据dest
- 目标文件off
- 数据开始位置len
- 数据长度isAppend
- 是否追加模式IORuntimeException
- IO异常public static File writeFromStream(InputStream in, File dest) throws IORuntimeException
dest
- 目标文件in
- 输入流IORuntimeException
- IO异常public static File writeFromStream(InputStream in, File dest, boolean isCloseIn) throws IORuntimeException
dest
- 目标文件in
- 输入流isCloseIn
- 是否关闭输入流IORuntimeException
- IO异常public static File writeFromStream(InputStream in, String fullFilePath) throws IORuntimeException
in
- 输入流fullFilePath
- 文件绝对路径IORuntimeException
- IO异常public static long writeToStream(File file, OutputStream out) throws IORuntimeException
file
- 文件out
- 流IORuntimeException
- IO异常public static long writeToStream(String fullFilePath, OutputStream out) throws IORuntimeException
fullFilePath
- 文件绝对路径out
- 输出流IORuntimeException
- IO异常public static String readableFileSize(File file)
file
- 文件public static String readableFileSize(long size)
size
- Long类型大小DataSizeUtil.format(long)
public static File convertCharset(File file, Charset srcCharset, Charset destCharset)
file
- 文件srcCharset
- 原文件的编码,必须与文件内容的编码保持一致destCharset
- 转码后的编码CharsetUtil.convert(File, Charset, Charset)
public static File convertLineSeparator(File file, Charset charset, LineSeparator lineSeparator)
file
- 文件charset
- 编码lineSeparator
- 换行符枚举LineSeparator
public static String cleanInvalid(String fileName)
fileName
- 文件名(必须不包括路径,否则路径符将被替换)FileNameUtil.cleanInvalid(String)
public static boolean containsInvalid(String fileName)
fileName
- 文件名(必须不包括路径,否则路径符将被替换)FileNameUtil.containsInvalid(String)
public static long checksumCRC32(File file) throws IORuntimeException
file
- 文件,不能为目录IORuntimeException
- IO异常public static Checksum checksum(File file, Checksum checksum) throws IORuntimeException
file
- 文件,不能为目录checksum
- Checksum
IORuntimeException
- IO异常public static File getWebRoot()
public static String getParent(String filePath, int level)
getParent("d:/aaa/bbb/cc/ddd", 0) -》 "d:/aaa/bbb/cc/ddd" getParent("d:/aaa/bbb/cc/ddd", 2) -》 "d:/aaa/bbb" getParent("d:/aaa/bbb/cc/ddd", 4) -》 "d:/" getParent("d:/aaa/bbb/cc/ddd", 5) -》 null
filePath
- 目录或文件路径level
- 层级public static File getParent(File file, int level)
getParent(file("d:/aaa/bbb/cc/ddd", 0)) -》 "d:/aaa/bbb/cc/ddd" getParent(file("d:/aaa/bbb/cc/ddd", 2)) -》 "d:/aaa/bbb" getParent(file("d:/aaa/bbb/cc/ddd", 4)) -》 "d:/" getParent(file("d:/aaa/bbb/cc/ddd", 5)) -》 null
file
- 目录或文件level
- 层级public static File checkSlip(File parentFile, File file) throws IllegalArgumentException
见http://blog.nsfocus.net/zip-slip-2/
parentFile
- 父文件或目录file
- 子文件或目录IllegalArgumentException
- 检查创建的子文件不在父目录中抛出此异常public static String getMimeType(String filePath)
filePath
- 文件路径或文件名public static boolean isSymlink(File file)
file
- 被检查的文件public static boolean isSub(File parent, File sub)
parent
- 父目录sub
- 子目录public static RandomAccessFile createRandomAccessFile(Path path, FileMode mode)
path
- 文件Pathmode
- 模式,见FileMode
RandomAccessFile
public static RandomAccessFile createRandomAccessFile(File file, FileMode mode)
file
- 文件mode
- 模式,见FileMode
RandomAccessFile
public static void tail(File file, LineHandler handler)
file
- 文件handler
- 行处理器public static void tail(File file, Charset charset, LineHandler handler)
file
- 文件charset
- 编码handler
- 行处理器Copyright © 2024. All rights reserved.