java 文件大小统计工具类_工具类之FileUtils

这份应该是我目前认为最好的一份对文件操作汇总的工具类了,毕竟是我花了很多精力开车才开出来的一份清晰整洁的工具类,下面就让我故车重开带你们遨游这1000+ lines,献上方法列表、代码及单元测试。

getFileByPath : 根据文件路径获取文件

isFileExists : 判断文件是否存在

isDir : 判断是否是目录

isFile : 判断是否是文件

createOrExistsDir : 判断目录是否存在,不存在则判断是否创建成功

createOrExistsFile : 判断文件是否存在,不存在则判断是否创建成功

createFileByDeleteOldFile : 判断文件是否存在,存在则在创建之前删除

copyDir : 复制目录

copyFile : 复制文件

moveDir : 移动目录

moveFile : 移动文件

deleteDir : 删除目录

deleteFile : 删除文件

listFilesInDir : 获取目录下所有文件

listFilesInDir : 获取目录下所有文件包括子目录

listFilesInDirWithFilter : 获取目录下所有后缀名为suffix的文件

listFilesInDirWithFilter : 获取目录下所有后缀名为suffix的文件包括子目录

listFilesInDirWithFilter : 获取目录下所有符合filter的文件

listFilesInDirWithFilter : 获取目录下所有符合filter的文件包括子目录

searchFileInDir : 获取目录下指定文件名的文件包括子目录

writeFileFromIS : 将输入流写入文件

writeFileFromString : 将字符串写入文件

getFileCharsetSimple : 简单获取文件编码格式

getFileLines : 获取文件行数

readFile2List : 指定编码按行读取文件到List

readFile2SB : 指定编码按行读取文件到StringBuilder中

getFileSize : 获取文件大小

getFileMD5 : 获取文件的MD5校验码

getDirName : 根据全路径获取最长目录

getFileName : 根据全路径获取文件名

getFileNameNoExtension : 根据全路径获取文件名不带拓展名

getFileExtension : 根据全路径获取文件拓展名

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.BufferedReader;

import java.io.Closeable;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.FilenameFilter;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

import static com.blankj.utilcode.utils.ConstUtils.*;

/**

*


* author: Blankj

* blog : http://blankj.com

* time : 2016/8/11

* desc : 文件相关工具类

*

*/

public class FileUtils {

private FileUtils() {

throw new UnsupportedOperationException("u can't instantiate me...");

}

/**

* 根据文件路径获取文件

*

* @param filePath 文件路径

* @return 文件

*/

public static File getFileByPath(String filePath) {

return StringUtils.isSpace(filePath) ? null : new File(filePath);

}

/**

* 判断文件是否存在

*

* @param filePath 文件路径

* @return {@code true}: 存在
{@code false}: 不存在

*/

public static boolean isFileExists(String filePath) {

return isFileExists(getFileByPath(filePath));

}

/**

* 判断文件是否存在

*

* @param file 文件

* @return {@code true}: 存在
{@code false}: 不存在

*/

public static boolean isFileExists(File file) {

return file != null && file.exists();

}

/**

* 判断是否是目录

*

* @param dirPath 目录路径

* @return {@code true}: 是
{@code false}: 否

*/

public static boolean isDir(String dirPath) {

return isDir(getFileByPath(dirPath));

}

/**

* 判断是否是目录

*

* @param file 文件

* @return {@code true}: 是
{@code false}: 否

*/

public static boolean isDir(File file) {

return isFileExists(file) && file.isDirectory();

}

/**

* 判断是否是文件

*

* @param filePath 文件路径

* @return {@code true}: 是
{@code false}: 否

*/

public static boolean isFile(String filePath) {

return isFile(getFileByPath(filePath));

}

/**

* 判断是否是文件

*

* @param file 文件

* @return {@code true}: 是
{@code false}: 否

*/

public static boolean isFile(File file) {

return isFileExists(file) && file.isFile();

}

/**

* 判断目录是否存在,不存在则判断是否创建成功

*

* @param dirPath 文件路径

* @return {@code true}: 存在或创建成功
{@code false}: 不存在或创建失败

*/

public static boolean createOrExistsDir(String dirPath) {

return createOrExistsDir(getFileByPath(dirPath));

}

/**

* 判断目录是否存在,不存在则判断是否创建成功

*

* @param file 文件

* @return {@code true}: 存在或创建成功
{@code false}: 不存在或创建失败

*/

public static boolean createOrExistsDir(File file) {

// 如果存在,是目录则返回true,是文件则返回false,不存在则返回是否创建成功

return file != null && (file.exists() ? file.isDirectory() : file.mkdirs());

}

/**

* 判断文件是否存在,不存在则判断是否创建成功

*

* @param filePath 文件路径

* @return {@code true}: 存在或创建成功
{@code false}: 不存在或创建失败

*/

public static boolean createOrExistsFile(String filePath) {

return createOrExistsFile(getFileByPath(filePath));

}

/**

* 判断文件是否存在,不存在则判断是否创建成功

*

* @param file 文件

* @return {@code true}: 存在或创建成功
{@code false}: 不存在或创建失败

*/

public static boolean createOrExistsFile(File file) {

if (file == null) return false;

// 如果存在,是文件则返回true,是目录则返回false

if (file.exists()) return file.isFile();

if (!createOrExistsDir(file.getParentFile())) return false;

try {

return file.createNewFile();

} catch (IOException e) {

e.printStackTrace();

return false;

}

}

/**

* 判断文件是否存在,存在则在创建之前删除

*

* @param filePath 文件路径

* @return {@code true}: 创建成功
{@code false}: 创建失败

*/

public static boolean createFileByDeleteOldFile(String filePath) {

return createFileByDeleteOldFile(getFileByPath(filePath));

}

/**

* 判断文件是否存在,存在则在创建之前删除

*

* @param file 文件

* @return {@code true}: 创建成功
{@code false}: 创建失败

*/

public static boolean createFileByDeleteOldFile(File file) {

if (file == null) return false;

// 文件存在并且删除失败返回false

if (file.exists() && file.isFile() && !file.delete()) return false;

// 创建目录失败返回false

if (!createOrExistsDir(file.getParentFile())) return false;

try {

return file.createNewFile();

} catch (IOException e) {

e.printStackTrace();

return false;

}

}

/**

* 复制或移动目录

*

* @param srcDirPath 源目录路径

* @param destDirPath 目标目录路径

* @param isMove 是否移动

* @return {@code true}: 复制或移动成功
{@code false}: 复制或移动失败

*/

private static boolean copyOrMoveDir(String srcDirPath, String destDirPath, boolean isMove) {

return copyOrMoveDir(getFil

你可能感兴趣的:(java,文件大小统计工具类)