apache commons-io相关介绍-FileUtils类

FileUtils类

FileUtils类这个工具类提供了下列功能:
+ writing to a file
+ reading from a file
+ make a directory including parent directories
+ copying files and directories
+ deleting files and directories
+ converting to and from a URL
+ listing files and directories by filter and extension
+ comparing file content
+ file last changed date
+ calculating a checksum

获取目录

getTempDirectory()
getTempDirectoryPath()
getUserDirectory()
getUserDirectoryPath()

写文件函数

write(File, CharSequence)
write(File, CharSequence, boolean)
write(File, CharSequence, String)
write(File, CharSequence, String, boolean)
write(File, CharSequence, Charset)
write(File, CharSequence, Charset, boolean)
writeByteArrayToFile(File, byte[])
writeByteArrayToFile(File, byte[], boolean)
writeLines(File, String, Collection<?>)
writeLines(File, String, Collection<?>, boolean)
writeLines(File, String, Collection<?>, String)
writeLines(File, String, Collection<?>, String, boolean)
writeLines(File, Collection<?>)
writeLines(File, Collection<?>, boolean)
writeLines(File, Collection<?>, String)
writeLines(File, Collection<?>, String, boolean)
writeStringToFile(File, String)
writeStringToFile(File, String, boolean)
writeStringToFile(File, String, String)
writeStringToFile(File, String, String, boolean)
writeStringToFile(File, String, Charset)
writeStringToFile(File, String, Charset, boolean)

读文件

readFileToByteArray(File)
readFileToString(File)
readFileToString(File, String)
readFileToString(File, Charset)
readLines(File)
readLines(File, String)
readLines(File, Charset)
//计算大小
sizeOf(File)
sizeOfAsBigInteger(File)
sizeOfDirectory(File)
sizeOfDirectoryAsBigInteger(File)

创建多层级目录

forceMkdir(File)
getFile(File, String...)
getFile(String...)

复制文件和目录

copyDirectory(File, File)
copyDirectory(File, File, boolean)
copyDirectory(File, File, FileFilter)
copyDirectory(File, File, FileFilter, boolean)
copyDirectoryToDirectory(File, File)
copyFile(File, File)
copyFile(File, File, boolean)
copyFile(File, OutputStream)
copyFileToDirectory(File, File)
copyFileToDirectory(File, File, boolean)
copyInputStreamToFile(InputStream, File)
copyURLToFile(URL, File)
copyURLToFile(URL, File, int, int)
moveDirectory(File, File)
moveDirectoryToDirectory(File, File, boolean)
moveFile(File, File)
moveFileToDirectory(File, File, boolean)
moveToDirectory(File, File, boolean)

删除文件和目录

cleanDirectory(File)
cleanDirectoryOnExit(File)
deleteDirectory(File)
deleteDirectoryOnExit(File)
deleteQuietly(File)
forceDelete(File)
forceDeleteOnExit(File)

URL转换

decodeUrl(String) 
toFile(URL)
toFiles(URL[])
toURLs(File[])  

列出文件和目录

iterateFiles(File, String[], boolean)
iterateFiles(File, IOFileFilter, IOFileFilter)
iterateFilesAndDirs(File, IOFileFilter, IOFileFilter)
lineIterator(File)
lineIterator(File, String)
listFiles(File, String[], boolean)
listFiles(File, IOFileFilter, IOFileFilter)
listFilesAndDirs(File, IOFileFilter, IOFileFilter)

比较文件

contentEquals(File, File)
contentEqualsIgnoreEOL(File, File, String)
isFileNewer(File, File)
isFileNewer(File, Date)
isFileNewer(File, long)
isFileOlder(File, File)
isFileOlder(File, Date)
isFileOlder(File, long)

文件最后修改时间

touch(File) 

计算checksum

checksum(File file, Checksum checksum) 
checksumCRC32(File file) 

和DirectoryWalker类一样,FileUtils类中也有可以递归遍历目录中所有子文件的3个函数。

listFiles(File, String[], boolean) //通过后缀名过滤
listFiles(File, IOFileFilter, IOFileFilter) // 通过过滤器过滤,列出不含目录
listFilesAndDirs(File, IOFileFilter, IOFileFilter) // 通过过滤器过滤,列出包含目录

递归列出子目录的两种方法:
1.demo1

public static void listbyExtension() {
    String[] extensions = new String[] { "txt", "", "" };
    Collection<File> files = FileUtils.listFiles(file, extensions, true);
    for (File f : files) {
        print(f);
    }
}

2.demo2

public static void listbyFilter() {
    
    //文件夹过滤器
    IOFileFilter dirFilter = new IOFileFilter() {
        public boolean accept(File dir, String name) {
            print("dirFilter:accept1");//不会被调用
            return true;
        }
        public boolean accept(File file) {
            print("dirFilter:accept2|"+file);//打印出目录
            return true;
        }
    };
    //文件过滤器
    IOFileFilter fileFilter = new IOFileFilter() {
        public boolean accept(File dir, String name) {
            print("fileFilter:accept1:");//不会被调用
            return true;
        }
        public boolean accept(File file) {
            print("fileFilter:accept2:");
            return true;
        }
    };
    Collection<File> list = FileUtils.listFiles(file, fileFilter, dirFilter);
    for (File file : list) {
        print(file);
    }
}

转载于:https://www.cnblogs.com/xiaozu/p/4555942.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
commons-io是一个开源的Java库,提供了许多实用的IO(输入/输出)工具,用于简化Java程序中的文件和流操作。它是Apache Commons项目的一部分,旨在提供常见的IO操作的实现和工具。 commons-io提供了许多功能强大且易于使用的和方法,包括文件操作、流操作、字节操作、字符操作等。其中一些常用的功能包括: 1. 文件操作:commons-io提供了一系列用于文件操作的工具,如FileUtils,可以方便地进行文件的复制、移动、删除、重命名等操作。 2. 流操作:commons-io提供了一些用于流操作的工具,如IOUtils,可以方便地进行流的读取、写入、复制等操作。它还提供了一些特殊型的流,如NullInputStream、NullOutputStream等,用于模拟空输入输出。 3. 字节操作:commons-io提供了一些用于字节操作的工具,如ByteUtils,可以方便地进行字节的转换、比较、填充等操作。 4. 字符操作:commons-io提供了一些用于字符操作的工具,如CharUtils,可以方便地进行字符的转换、判断、查找等操作。 5. 文件过滤器:commons-io提供了一些用于文件过滤的工具,如FileFilterUtils,可以方便地进行文件过滤操作,例如按文件名、文件型等进行过滤。 6. 异常处理:commons-io提供了一些用于异常处理的工具,如ExceptionUtils,可以方便地进行异常的捕获、包装、打印等操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值