天天看点

FileUtils @ IO

JDK中的提供的类:BigInteger,表示任意大的整数,并提供各种运算方法。例如 add:加 subtract:减 multiply:乘 divide:除 -- 好好看看这个类,至少可以知道相关运算用英语怎么说。

来自org.apache.commons.io包。 定义的常量: ONE_KB:1024 以下相邻数值之间是1024倍的关系,其中ONE_ZB和ONE_YB因为已经超出了long的范围,所以只有BigInteger类型的:

ONE_KB ONE_MB  ONE_GB  ONE_TB  ONE_PB ONE_EB ONE_ZB ONE_YB long或BigInteger类型
ONE_KB_BI ONE_MB_BI ONE_GB_BI ONE_TB_BI ONE_PB_BI ONE_EB_BI BigInteger类型

getFile 一级一级地创建File对象。注意:这里只是创建了File对象,并没有创建实际的文件或者文件夹。 (JDK中,如果是创建目录,直接使用mkdirs/mkdir方法就可以了,如果是创建文件,则必须要有文件的内容(流)才行。因为不能创建一个空的文件啊!) public static File getFile(File directory, String... names) public static File getFile(String... names)

getTempDirectoryPath 返回系统的临时目录的路径。效果和System.getProperty("java.io.tmpdir")相同。或者使用SystemUtils.JAVA_IO_TMPDIR常量。 getTempDirectory 得到系统临时目录的File对象。和SystemUtils.getJavaIoTmpDir()效果相同。 getUserDirectoryPath 同System.getProperty("user.home")。或者使用SystemUtils.USER_HOME常量。 getUserDirectory 同SystemUtils.getUserHome()。

openInputStream public static FileInputStream openInputStream(File file) throws IOException openOutputStream public static FileOutputStream openOutputStream(File file) throws IOException -- 不追加。 public static FileOutputStream openOutputStream(File file, boolean append) throws IOException -- 通过append控制是否追加。

public static String byteCountToDisplaySize(BigInteger size) public static String byteCountToDisplaySize(long size) 将数值转换为易读的形式。例如10240的对应结果是10K。结果值保留整数位。最大单位为EB。小于1024则以 bytes 为单位。

touch public static void touch(File file) throws IOException 对应Unix中的touch操作。

public static File[] convertFileCollectionToFileArray(Collection<File> files) 返回的是:files.toArray(new File[files.size()])。 直接使用似乎也并不麻烦。

listFiles listFilesAndDirs iterateFiles iterateFilesAndDirs 关于IOFileFilter。刷选符合要求的File。不懂。略。

listFiles public static Collection<File> listFiles( File directory, String[] extensions, boolean recursive) 得到一个目录下的特定扩展名的文件。通过recursive(递归的)控制是否包括子文件夹下的文件。 iterateFiles public static Iterator<File> iterateFiles( File directory, String[] extensions, boolean recursive) 与listFiles方法类似。

public static boolean contentEquals(File file1, File file2) throws IOException 比较两个File对象的内容是否相同。只能比较文件(而不能比较目录)。如果都是null,则认为是相同的。

public static boolean contentEqualsIgnoreEOL(File file1, File file2, String charsetName) throws IOException

public static File toFile(URL url) public static File[] toFiles(URL[] urls) public static URL[] toURLs(File[] files) throws IOException

copyFileToDirectory public static void copyFileToDirectory(File srcFile, File destDir) 保留文件日期,实际是执行了:copyFileToDirectory(srcFile, destDir, true) public static void copyFileToDirectory(File srcFile, File destDir, boolean preserveFileDate) throws IOException preserveFileDate:是否保留文件的日期。

copy

copyFile

public static void copyFile(File srcFile, File destFile) throws IOException 复制文件到新地址。保留文件日期。 public static void copyFile(File srcFile, File destFile, boolean preserveFileDate) 由preserveFileDate决定是否保留文件日期。 public static long copyFile(File input, OutputStream output) throws IOException 将文件复制到一个输出流。 copyDirectoryToDirectory public static void copyDirectoryToDirectory(File srcDir, File destDir) throws IOException

public static void copyDirectory(File srcDir, File destDir) throws IOException public static void copyDirectory(File srcDir, File destDir, boolean preserveFileDate) throws IOException public static void copyDirectory(File srcDir, File destDir, FileFilter filter) public static void copyDirectory(File srcDir, File destDir, FileFilter filter, boolean preserveFileDate) copyURLToFile public static void copyURLToFile(URL source, File destination) throws IOException public static void copyURLToFile(URL source, File destination, int connectionTimeout, int readTimeout) throws IOException

copyInputStreamToFile public static void copyInputStreamToFile(InputStream source, File destination) throws IOException 将输入流中的内容写到目标位置。

public static void deleteDirectory(File directory) throws IOException public static boolean deleteQuietly(File file) 删除文件(夹),而不抛出任何异常(即使删除失败)。JDK提供的File.delete()方法在删除文件夹的时候要求文件夹必须是空的,而此方法不需要。

public static boolean directoryContains(final File directory, final File child) throws IOException 检查文件夹中是否存在某个文件(夹)。如果是null,则他不存在于任何文件夹中。

public static void cleanDirectory(File directory) throws IOException 清空目录中的内容,但是不删除目录。 这个方法的源码有一处处理值得学习:在删除目录中的内容的时候有可能出现IOException,这时只捕获异常,并继续删除后面的内容,直到所有的内容都已经尝试删除后,再抛出异常。(而不是在出现异常时就立即抛出,因为这样会使后面原本可以删除的内容也不被删除)

waitFor 不懂。略。

readFileToString public static String readFileToString(File file, Charset encoding) throws IOException public static String readFileToString(File file, String encoding) throws IOException 将内容输出为String。不用考虑关流的问题。 public static String readFileToString(File file) throws IOException 使用默认字符集。

public static byte[] readFileToByteArray(File file) throws IOException

readLines 文件内容中的每一行作为List中的元素 public static List<String> readLines(File file, Charset encoding) throws IOException public static List<String> readLines(File file, String encoding) throws IOException public static List<String> readLines(File file) throws IOException 使用默认的字符集

lineIterator public static LineIterator lineIterator(File file, String encoding) throws IOException public static LineIterator lineIterator(File file) throws IOException

writeStringToFile public static void writeStringToFile(File file, String data, Charset encoding) throws IOException public static void writeStringToFile(File file, String data, String encoding) throws IOException public static void writeStringToFile(File file, String data, Charset encoding, boolean append) throws IOException append:是否追加。前两个方法不追加。 public static void writeStringToFile(File file, String data, String encoding, boolean append) throws IOException public static void writeStringToFile(File file, String data) throws IOException 默认编码,不追加。 public static void writeStringToFile(File file, String data, boolean append) throws IOException 默认编码。

write writeByteArrayToFile writeLines

forceDelete 强制删除文件或文件夹,如果是文件夹,会级联的删除下级文件或文件夹。 public static void forceDelete(File file) throws IOException forceDeleteOnExit 不懂。略。

forceMkdir public static void forceMkdir(File directory) throws IOException 其实还是用mkdirs()。如果File指向的是一个已经存在的文件(而不是文件夹),会抛出异常。(同一级中文件和文件夹不能重名。)

sizeOf 计算文件或文件夹的大小。 public static long sizeOf(File file) public static BigInteger sizeOfAsBigInteger(File file) public static long sizeOfDirectory(File directory) public static BigInteger sizeOfDirectoryAsBigInteger(File directory)

isFileNewer 比较文件的最后修改时间。 public static boolean isFileNewer(File file, File reference) public static boolean isFileNewer(File file, Date date) public static boolean isFileNewer(File file, long timeMillis) public static boolean isFileOlder(File file, File reference) public static boolean isFileOlder(File file, Date date) public static boolean isFileOlder(File file, long timeMillis)

public static Checksum checksum(File file, Checksum checksum) throws IOException public static long checksumCRC32(File file) throws IOException 计算校验和。-- 不懂。略。

move 移动。 public static void moveDirectory(File srcDir, File destDir) throws IOExceptions 即移动到一个新的位置, 并重命名。 public static void moveDirectoryToDirectory(File src, File destDir, boolean createDestDir) throws IOException 移动到指定的文件夹。 public static void moveFile(File srcFile, File destFile) throws IOException public static void moveFileToDirectory(File srcFile, File destDir, boolean createDestDir) throws IOException public static void moveToDirectory(File src, File destDir, boolean createDestDir) throws IOException

public static boolean isSymlink(File file) throws IOException 是否是系统的链接文件。(即系统的超链接文件?)略。

(完)