zoukankan      html  css  js  c++  java
  • 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);
        }
    }
  • 相关阅读:
    luogu P4779 【模板】单源最短路径(标准版)| dijkstra
    luogu P1160 队列安排 | 链式前向星
    luogu P1996 约瑟夫问题 | 链表
    luogu P3386 【模板】二分图匹配 | 匈牙利算法
    luogu P3366 【模板】最小生成树 | kruskal
    luogu P3378 【模板】堆
    luogu P3372 【模板】线段树 1
    luogu P1776 宝物筛选_NOI导刊2010提高(02) | 多重背包(二进制拆分)
    luogu P1616 疯狂的采药 | 完全背包
    luogu P1588 丢失的牛 | 宽搜
  • 原文地址:https://www.cnblogs.com/xiaozu/p/4555942.html
Copyright © 2011-2022 走看看