這是一個Java操做文件的經常使用庫,是Apache對java的IO包的封裝,這裏面有兩個很是核心的類FilenameUtils跟FileUtils,其中FilenameUtils是對文件名操做的封裝;FileUtils是文件封裝,開發中對文件的操做,幾乎均可以在這個框架裏面找到。 很是的好用。java
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")); }
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); }
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/")); }
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")); }
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) }
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);
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()); } } }