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());    
         }   
    }  
}  
相關文章
相關標籤/搜索