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
是否是系统的链接文件。(即系统的超链接文件?)略。

(完)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值