Apache Commons IO好用的功能主要集中在工具类FileUtil中,包含了建立,删除,复制,移动,比较文件新旧,递归枚举目录清空目录,一次读取整个文件等。以下是一个我认为有用的列表:
1. byteCountToDisplaySize(long size)
把字节表示的文件大小转换为一个字符串。比如一个64×1024×1024字节的文件,转换的结果就是64 MB。
2. copyFile(File source, File dest)
复制文件。当然可以自己用一个while循环来作,不过先打开两个文件,再建立一个while循环,然后再关闭两个文件,实在有点麻烦,有了现成的经过测试的代码,省事多了。
3. deleteDirectory(File dir)
删除一个目录,如果有子目录,则执行递归删除操作。
4. forceDeleteOnExit(File file)
当强制JVM退出时,删除file变量对应的文件或者目录。在处理临时目录上非常好用。
5. isFileNewer(File file, File reference)
比较第一个文件是否比第二个文件新。
6. listFiles(File dir, IOFileFilter fileFilter, IOFileFilter dirFilter)
listFiles(File dir, String[] extensions, boolean recursive)
最有用的函数,可以递归枚举目录下的所有文件和目录。
7. readFileToString(File file, String encoding)
非常实用的功能,一次性读入文本文件到一个字符串中,且可以指定编码。
(可惜缺少了一个Python中更为好使的readLines)。
还有一个叫做EndianUtil的工具类,可以用来转换字节流的循序,跟IPAddress的几个转换函数很想。不过由于java没有unsigned short,unsigned int等系列变量,导致这些函数在网络字节流的转换上作用不大。