java fileutils api_FileUtils API
一、概述
這是一個(gè)Java操作文件的常用庫(kù),是Apache對(duì)java的IO包的封裝,這里面有兩個(gè)非常核心的類FilenameUtils跟FileUtils,其中FilenameUtils是對(duì)文件名操作的封裝;FileUtils是文件封裝,開(kāi)發(fā)中對(duì)文件的操作,幾乎都可以在這個(gè)框架里面找到。 非常的好用。
二、FileUtils讀API
Java代碼
public?static?void?main(String[]?args)?throws?Exception?{
//讀取文本文件的所有行到一個(gè)集合
List?lines=FileUtils.readLines(new?File("D:/fileUtis/aa.txt"),"utf-8");
for?(String?s?:?lines)?{
System.out.println(s);
}
//讀取文件內(nèi)容到一個(gè)字符串
String?str?=?FileUtils.readFileToString(new?File("D:/fileUtis/aa.txt"),?"utf-8");
System.out.println(str);
//讀取文件到一個(gè)byte數(shù)組
FileUtils.readFileToByteArray(new?File("D:/fileUtis/aa.txt"));
}
三.FileUtils寫API
Java代碼
public?static?void?main(String[]?args)?throws?Exception?{
//將字符寫入到一個(gè)文件,文件不存在會(huì)創(chuàng)建;第三個(gè)參數(shù):true:追加,false:覆蓋
FileUtils.write(new?File("D:/fileUtis/targetFile/aa.txt"),"aa",false);
//根據(jù)指定編碼將字符寫入到一個(gè)文件,文件不存在會(huì)創(chuàng)建;會(huì)覆蓋
FileUtils.write(new?File("D:/fileUtis/targetFile/bb.txt"),"ickes","utf-8");
//根據(jù)指定編碼將字符寫入到一個(gè)文件,文件不存在會(huì)創(chuàng)建;會(huì)覆蓋
FileUtils.write(new?File("D:/fileUtis/targetFile/cc.txt"),"ickes","utf-8",true);
//將一個(gè)字符串集合根據(jù)指定的分隔符寫入到文件中,第四個(gè)參數(shù)是分隔符
List?ss?=?new?ArrayList<>();
ss.add("aa");ss.add("bb");
FileUtils.writeLines(new?File("D:/fileUtis/targetFile/dd.txt"),"utf-8",ss,?",");
//將一個(gè)字符串集合,一行一行寫入到文件中,
FileUtils.writeLines(new?File("D:/fileUtis/targetFile/ee.txt"),?"utf-8",?ss,true);
}
四、FileUtils刪除API
Java代碼
public?static?void?main(String[]?args)?throws?Exception?{
//刪除一個(gè)目錄和他的所有子目錄,如果文件或者目錄不存在會(huì)拋出異常
FileUtils.deleteDirectory(new?File("D:/fileUtis/targetFile/"));
//刪除一個(gè)目錄或者一個(gè)文件,如果這個(gè)目錄或者目錄不存在不會(huì)拋出異常
FileUtils.deleteQuietly(new?File("D:/fileUtis/targetFile/"));
//清除一個(gè)目錄下面的所有文件跟目錄。
FileUtils.cleanDirectory(new?File("D:/fileUtis/targetFile/"));
//刪除一個(gè)文件,如果是目錄則遞歸刪除forceDelete(File?file),跟deleteDirectory基本一樣
FileUtils.forceDelete(new?File("D:/fileUtis/targetFile/"));
}
五、FileUtils創(chuàng)建API
Java代碼
public?static?void?main(String[]?args)?throws?Exception?{
//創(chuàng)建一個(gè)目錄,可以遞歸創(chuàng)建,只要不為null
FileUtils.forceMkdir(new?File("D:/fileUtis/targetFile/aa"));
//創(chuàng)建一個(gè)空文件,若文件應(yīng)經(jīng)存在則只更改文件的最近修改時(shí)間
FileUtils.touch(new?File("D:/fileUtis/targetFile/Liftoff.java"));
}
六.FileUtils復(fù)制,移動(dòng)(剪切)API
Java代碼
public?static?void?main(String[]?args)?throws?Exception?{
//復(fù)制目錄
File?dataFile=new?File("D:/fileUtis/dataFile");
File?targetFile?=?new?File("D:/fileUtis/targetFile");
if(targetFile.isDirectory()){//判斷是否是一個(gè)目錄
FileUtils.copyDirectory(dataFile,targetFile);
}
//復(fù)制文件
dataFile=new?File("D:/fileUtis/dataFile/joiner.java");
targetFile?=?new?File("D:/fileUtis/targetFile/aa.txt");
FileUtils.copyFile(dataFile,targetFile);
//復(fù)制文件到一個(gè)目錄
dataFile=new?File("D:/fileUtis/dataFile/joiner.java");
targetFile?=?new?File("D:/fileUtis/");
FileUtils.copyFileToDirectory(dataFile,?targetFile);
//移動(dòng)目錄到新的目錄并且刪除老的目錄,新的目錄不存在會(huì)創(chuàng)建,如果存在會(huì)報(bào)錯(cuò)
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");
//把目錄移動(dòng)到一個(gè)新的文件下面,是新文件下面,ture,當(dāng)目標(biāo)文件不存在是否創(chuàng)建
FileUtils.moveDirectoryToDirectory(dataFile,?targetFile,?true);
//復(fù)制文件
FileUtils.moveFile(srcFile,?destFile)
}
七.FileUtils的其他方法
Java代碼
#獲取一個(gè)目錄的大小
FileUtils.sizeOfDirectory(file);
#獲取文件或者目錄的大小
FileUtils.sizeOf(file);
#得到系統(tǒng)臨時(shí)目錄的路徑,例如C:\Users\ADMINI~1\AppData\Local\Temp\
FileUtils.getTempDirectoryPath()
#比較兩個(gè)文件內(nèi)容是否相等,左右兩邊有空格返回false
FileUtils.contentEquals(file1,?file2);
#獲取用戶的主目錄路徑,返回的是字符串
FileUtils.getUserDirectoryPath();
#獲取代表用戶主目錄的文件,返回的是file
FileUtils.getUserDirectory();
#根據(jù)指定的文件獲取一個(gè)新的文件輸出流
FileUtils.openOutputStream(file);
#字節(jié)轉(zhuǎn)換成直觀帶單位的值(包括單位GB,MB,KB或字節(jié)),如下返回95?M
FileUtils.byteCountToDisplaySize(100000000);
八、對(duì)文件的過(guò)濾處理
Java代碼
public?class?FileUtilsTest?{
/**
*?通配符過(guò)濾目錄下的文件
*/
static?void?wildcardTest(){
File?dir?=?new?File("D:/fileUtis");
FileFilter?fileFilter?=?new?WildcardFileFilter("*.java");
File[]?files?=?dir.listFiles(fileFilter);
for?(int?i?=?0;?i?
System.out.println(files[i]);
}
}
/**
*?過(guò)濾文件大小,等于或大于某一尺寸?,單位為字節(jié)
*/
static?void?sizeFile(){
File?dir?=?new?File("D:/fileUtis");
String[]?files?=?dir.list(?new?SizeFileFilter(1024*2)?);
for?(?int?i?=?0;?i?
System.out.println(files[i]);
}
}
/**
*?過(guò)濾文件后綴名
*/
static?void?suffix(){
File?dir?=?new?File("D:/fileUtis");
String[]?files?=?dir.list(new?SuffixFileFilter(".java"));
for?(int?i?=?0;?i?
System.out.println(files[i]);
}
}
/**
*?使用正則表達(dá)式過(guò)濾
*/
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?
System.out.println(files[i]);
}
}
/**
*?文件前綴過(guò)濾
*/
static?void?aa(){
File?dir?=?new?File("D:/fileUtis");
String[]?files?=?dir.list(?new?PrefixFileFilter("aa"));
for?(?int?i?=?0;?i?
System.out.println(files[i]);
}
}
/**
*?打印這個(gè)目錄下所有.java結(jié)尾的文件名,會(huì)遞歸去他子目錄中去找
*?@param?args
*?@throws?Exception
*/
public?static?void?main(String[]?args)?throws?Exception?{
File?dir?=?new?File("D:/fileUtis");
Collection?files?=?FileUtils.listFiles(dir,
FileFilterUtils.suffixFileFilter(".java"),
DirectoryFileFilter.DIRECTORY);
for?(File?f?:?files)?{
System.out.println(f.getName());
}
}
}
總結(jié)
以上是生活随笔為你收集整理的java fileutils api_FileUtils API的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 秘罗地伤痕 -- 暂存小说草稿
- 下一篇: 用手机EchoEcho问询朋友所在的位置