FileUtils API

1、概述

这是一个Java操做文件的经常使用库,是Apache对java的IO包的封装,这里面有两个很是核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操做的封装;FileUtils是文件封装,开发中对文件的操做,几乎均可以在这个框架里面找到。 很是的好用。java

2、FileUtils读API

Java代码 正则表达式

public static void main(String[] args) throws Exception {  
        //读取文本文件的全部行到一个集合  
        List<String> lines=FileUtils.readLines(new File("D:/fileUtis/aa.txt"),"utf-8");  
        for (String s : lines) {  
            System.out.println(s);  
        }  
        //读取文件内容到一个字符串  
        String str = FileUtils.readFileToString(new File("D:/fileUtis/aa.txt"), "utf-8");  
        System.out.println(str);  
        //读取文件到一个byte数组  
        FileUtils.readFileToByteArray(new File("D:/fileUtis/aa.txt"));  
    }  

三.FileUtils写API

Java代码 数组

public static void main(String[] args) throws Exception {  
        //将字符写入到一个文件,文件不存在会建立;第三个参数:true:追加,false:覆盖  
        FileUtils.write(new File("D:/fileUtis/targetFile/aa.txt"),"aa",false);  
        //根据指定编码将字符写入到一个文件,文件不存在会建立;会覆盖  
        FileUtils.write(new File("D:/fileUtis/targetFile/bb.txt"),"ickes","utf-8");  
        //根据指定编码将字符写入到一个文件,文件不存在会建立;会覆盖  
        FileUtils.write(new File("D:/fileUtis/targetFile/cc.txt"),"ickes","utf-8",true);  
        //将一个字符串集合根据指定的分隔符写入到文件中,第四个参数是分隔符  
        List<String> ss = new ArrayList<>();  
        ss.add("aa");ss.add("bb");  
        FileUtils.writeLines(new File("D:/fileUtis/targetFile/dd.txt"),"utf-8",ss, ",");  
        //将一个字符串集合,一行一行写入到文件中,  
        FileUtils.writeLines(new File("D:/fileUtis/targetFile/ee.txt"), "utf-8", ss,true);  
    }  

 4、FileUtils删除API

Java代码 框架

public static void main(String[] args) throws Exception {  
        //删除一个目录和他的全部子目录,若是文件或者目录不存在会抛出异常  
        FileUtils.deleteDirectory(new File("D:/fileUtis/targetFile/"));  
        //删除一个目录或者一个文件,若是这个目录或者目录不存在不会抛出异常  
        FileUtils.deleteQuietly(new File("D:/fileUtis/targetFile/"));  
        //清除一个目录下面的全部文件跟目录。  
        FileUtils.cleanDirectory(new File("D:/fileUtis/targetFile/"));  
        //删除一个文件,若是是目录则递归删除forceDelete(File file),跟deleteDirectory基本同样  
        FileUtils.forceDelete(new File("D:/fileUtis/targetFile/"));  
    }  

5、FileUtils建立API

Java代码 ui

public static void main(String[] args) throws Exception {  
        //建立一个目录,能够递归建立,只要不为null  
        FileUtils.forceMkdir(new File("D:/fileUtis/targetFile/aa"));  
        //建立一个空文件,若文件应经存在则只更改文件的最近修改时间  
        FileUtils.touch(new File("D:/fileUtis/targetFile/Liftoff.java"));  
    }  

 

六.FileUtils复制,移动(剪切)API

Java代码 编码

public static void main(String[] args) throws Exception {  
        //复制目录  
        File dataFile=new File("D:/fileUtis/dataFile");  
        File targetFile = new File("D:/fileUtis/targetFile");  
        if(targetFile.isDirectory()){//判断是不是一个目录  
            FileUtils.copyDirectory(dataFile,targetFile);  
        }  
        //复制文件  
        dataFile=new File("D:/fileUtis/dataFile/joiner.java");  
        targetFile = new File("D:/fileUtis/targetFile/aa.txt");  
        FileUtils.copyFile(dataFile,targetFile);  
        //复制文件到一个目录  
        dataFile=new File("D:/fileUtis/dataFile/joiner.java");  
        targetFile = new File("D:/fileUtis/");  
        FileUtils.copyFileToDirectory(dataFile, targetFile);  
          
        //移动目录到新的目录而且删除老的目录,新的目录不存在会建立,若是存在会报错  
        dataFile=new File("D:/fileUtis/dataFile");  
        targetFile = new File("D:/fileUtis/aa");  
        FileUtils.moveDirectory(dataFile, targetFile);  
          
        dataFile=new File("D:/fileUtis/dataFile");  
        targetFile = new File("D:/fileUtis/aa");  
        //把目录移动到一个新的文件下面,是新文件下面,ture,当目标文件不存在是否建立  
        FileUtils.moveDirectoryToDirectory(dataFile, targetFile, true);  
        //复制文件  
        FileUtils.moveFile(srcFile, destFile)  
    }  

 七.FileUtils的其余方法

Java代码 spa

#获取一个目录的大小  
FileUtils.sizeOfDirectory(file);  
  
#获取文件或者目录的大小  
FileUtils.sizeOf(file);  
  
#获得系统临时目录的路径,例如C:\Users\ADMINI~1\AppData\Local\Temp\  
FileUtils.getTempDirectoryPath()  
  
#比较两个文件内容是否相等,左右两边有空格返回false  
FileUtils.contentEquals(file1, file2);  
  
#获取用户的主目录路径,返回的是字符串  
FileUtils.getUserDirectoryPath();  
  
#获取表明用户主目录的文件,返回的是file  
FileUtils.getUserDirectory();  
  
#根据指定的文件获取一个新的文件输出流  
FileUtils.openOutputStream(file);  
  
#字节转换成直观带单位的值(包括单位GB,MB,KB或字节),以下返回95 M  
FileUtils.byteCountToDisplaySize(100000000);  

 

 8、对文件的过滤处理

Java代码 code

public class FileUtilsTest {  
    /** 
     * 通配符过滤目录下的文件 
     */  
    static void wildcardTest(){  
        File dir = new File("D:/fileUtis");    
        FileFilter fileFilter = new WildcardFileFilter("*.java");    
        File[] files = dir.listFiles(fileFilter);    
        for (int i = 0; i < files.length; i++) {    
           System.out.println(files[i]);    
        }    
    }  
    /** 
     * 过滤文件大小,等于或大于某一尺寸 ,单位为字节 
     */  
    static void sizeFile(){  
        File dir = new File("D:/fileUtis");   
        String[] files = dir.list( new SizeFileFilter(1024*2) );  
        for ( int i = 0; i < files.length; i++ ) {  
            System.out.println(files[i]);  
        }  
    }  
    /** 
     * 过滤文件后缀名  
     */  
    static void suffix(){  
        File dir = new File("D:/fileUtis");   
        String[] files = dir.list(new SuffixFileFilter(".java"));  
        for (int i = 0; i < files.length; i++) {    
            System.out.println(files[i]);    
        }     
    }  
    /** 
     * 使用正则表达式过滤 
     */  
    static void regex(){  
        File dir = new File("D:/fileUtis");   
        FileFilter fileFilter = new RegexFileFilter("^j.*.java");    
        File[] files = dir.listFiles(fileFilter);    
        for (int i = 0; i < files.length; i++) {    
          System.out.println(files[i]);    
        }   
    }  
      
    /** 
     * 文件前缀过滤 
     */  
    static void aa(){  
        File dir = new File("D:/fileUtis");  
        String[] files = dir.list( new PrefixFileFilter("aa"));    
        for ( int i = 0; i < files.length; i++ ) {    
             System.out.println(files[i]);    
        }    
    }  
    /** 
     * 打印这个目录下全部.java结尾的文件名,会递归去他子目录中去找 
     * @param args 
     * @throws Exception 
     */  
    public static void main(String[] args) throws Exception {  
        File dir = new File("D:/fileUtis");  
        Collection<File> files = FileUtils.listFiles(dir,  
                FileFilterUtils.suffixFileFilter(".java"),    
                DirectoryFileFilter.DIRECTORY);  
         for (File f : files) {    
              System.out.println(f.getName());    
         }   
    }  
}  
相关文章
相关标签/搜索