org.apache.commons.io.FileUtils使用

個(gè)人專(zhuān)題目錄


org.apache.commons.io.FileUtils快速讀寫(xiě)文件

String fileName = "C://11.txt";
File file = new File(fileName);
String fileContent = "";
try {
    fileContent = org.apache.commons.io.FileUtils.readFileToString(file, "GBK");
} catch (IOException e) {
    e.printStackTrace();
}
fileContent += "Helloworld";
try {
    org.apache.commons.io.FileUtils.writeStringToFile(file, fileContent, "GBK");
} catch (IOException e) {
    e.printStackTrace();
}

其他參考

Commons IO方便讀寫(xiě)文件的工具類(lèi):

Commons IO是apache的一個(gè)開(kāi)源的工具包,封裝了IO操作的相關(guān)類(lèi),使用Commons IO可以很方便的讀寫(xiě)文件,url源代碼等.

普通地讀取一個(gè)網(wǎng)頁(yè)的源代碼的代碼可能如下

InputStream in = new URL("http://laoyu.info").openStream();
try {
    InputStreamReader inR = new InputStreamReader(in);
    BufferedReader buf = new BufferedReader(inR);
    String line;
    while ((line = buf.readLine()) != null) {
        System.out.println(line);
    }
} finally {
    in.close();
}

使用了Commons IO,則可以大大簡(jiǎn)化代碼.如下:

InputStream in = new URL("http://laoyu.info").openStream();
try {
    System.out.println(IOUtils.toString(in));
} finally {
    IOUtils.closeQuietly(in);
}

Commons IO里的常用類(lèi)

FileUtils包含了文件操作的相關(guān)方法.

下面的代碼用于讀取磁盤(pán)上的某個(gè)文件:

  1. File file = new File("c:/test.txt");
  2. List lines = FileUtils.readLines(file, "UTF-8");

FileSystemUtils 可以獲得指定磁盤(pán)路徑的可用空間

  1. long freeSpace = FileSystemUtils.freeSpace("d:/");

文件復(fù)制代碼:

  1. File src = new File("src.txt");
  2. File dest = new File("dest.txt");
  3. FileUtils.copyFile(src, dest);

補(bǔ)充:

方便地下載文 件到本地

InputStream in = new URL("http://www.baidu.com/img/baidu_logo.gif").openStream();
byte[] gif = IOUtils.toByteArray(in);
//IOUtils.write(gif,new FileOutputStream(new File("c:/test.gif")));
FileUtils.writeByteArrayToFile(new File("c:/test.gif"), gif);
IOUtils.closeQuietly(in);

分享 commons io 工具類(lèi) 代碼

輸入流復(fù)制到 輸出流

Writer write = new FileWriter("c:\\kk.dat");
InputStream ins = new FileInputStream(new File("c:\\text.txt"));
IOUtils.copy(ins, write);
write.close();
ins.close();

文本寫(xiě)入指定文件

String name = "my name is panxiuyan";
File file = new File("c:\name.txt");
FileUtils.writeStringToFile(file, name);  

將輸入流轉(zhuǎn)換成文本

URL url = new URL("http://www.dimurmill.com");
InputStream ins = url.openStream();
String contents = IOUtils.toString(ins, "UTF-8");
System.out.println("Slashdot: " + contents);

文件復(fù)制指定的目錄

File srcfile = new File("c:\\Test.java");
File destDir = new File("D:\\");
FileUtils.copyFileToDirectory(srcfile, destDir);

網(wǎng)絡(luò)流保存為文件

URL url = new URL("http://www.163.com");
File file = new File("c:\163.html");
FileUtils.copyURLToFile(url, file);

文件目錄操作

File dir = new File("c:\test");
FileUtils.cleanDirectory(dir);//清空目錄下的文件
FileUtils.deleteDirectory(dir);//刪除目錄和目錄下的文件
//目錄大小 
long size = FileUtils.sizeOfDirectory(dir);  

目錄操作

File testFile = new File("testFile.txt");
//如果不存在,新建
// 如果存在,修改文件修改時(shí)間
FileUtils.touch(testFile);

記錄流的讀取寫(xiě)入字節(jié)數(shù)

File test = new File("test.dat");
//輸出流的統(tǒng)計(jì)
CountingOutputStream countStream = null;
//輸入流的統(tǒng)計(jì)
//CountingInputStream countStream = null;
try {
    FileOutputStream fos = new FileOutputStream(test);
    countStream = new CountingOutputStream(fos);
    countStream.write("Hello".getBytes());
} catch (IOException ioe) {
    System.out.println("Error writing bytes to file.");
} finally {
    IOUtils.closeQuietly(countStream);
}
if (countStream != null) {
    int bytesWritten = countStream.getCount();
    System.out.println("Wrote " + bytesWritten + " bytes to test.dat");
}

相同的內(nèi)容寫(xiě)入不同的文本

File test1 = new File("split1.txt");
File test2 = new File("split2.txt");
OutputStream outStream = null;
try {
    FileOutputStream fos1 = new FileOutputStream(test1);
    FileOutputStream fos2 = new FileOutputStream(test2);
    //包含不同的文本
    outStream = new TeeOutputStream(fos1, fos2);
    outStream.write("One Two Three, Test".getBytes());
    outStream.flush();
} catch (IOException ioe) {
    System.out.println("Error writing to split output stream");
} finally {
    IOUtils.closeQuietly(outStream);
}

文件刪除

File file = new File(("io/project.properties"));
String display = FileUtils.byteCountToDisplaySize(file.length());
System.out.println("project.xml is " + display);
FileUtils.forceDelete(file);

讀取取文本中的每一行:

File file = new File((Test.class.getClass().getResource("/io/web.xml")).getFile());
List lines = FileUtils.readLines(file, "UTF-8");
for (int i = 0; i < lines.size(); i++)
    System.out.println(lines.get(i));
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末翔烁,一起剝皮案震驚了整個(gè)濱河市庶喜,隨后出現(xiàn)的幾起案子喻括,更是在濱河造成了極大的恐慌露懒,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件淘正,死亡現(xiàn)場(chǎng)離奇詭異祸穷,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)停蕉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)愕鼓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人慧起,你說(shuō)我怎么就攤上這事菇晃。” “怎么了蚓挤?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵磺送,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我灿意,道長(zhǎng)册着,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任脾歧,我火速辦了婚禮甲捏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鞭执。我一直安慰自己司顿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布兄纺。 她就那樣靜靜地躺著大溜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪估脆。 梳的紋絲不亂的頭發(fā)上钦奋,一...
    開(kāi)封第一講書(shū)人閱讀 52,255評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼付材。 笑死朦拖,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的厌衔。 我是一名探鬼主播璧帝,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼富寿!你這毒婦竟也來(lái)了睬隶?” 一聲冷哼從身側(cè)響起页徐,我...
    開(kāi)封第一講書(shū)人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤变勇,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后贰锁,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體滤蝠,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年锣险,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了芯肤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡崖咨,死狀恐怖击蹲,靈堂內(nèi)的尸體忽然破棺而出婉宰,到底是詐尸還是另有隱情,我是刑警寧澤类咧,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站区宇,受9級(jí)特大地震影響血巍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜柿隙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一鲫凶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧螟炫,春花似錦、人聲如沸掸屡。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)盏求。三九已至亿眠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間荆烈,已是汗流浹背竟趾。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留倦始,地道東北人山卦。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓诵次,卻偏偏與公主長(zhǎng)得像逾一,于是被迫代替她去往敵國(guó)和親肮雨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 1.創(chuàng)建文件夾 Dir.new %%1 Dir::mkdir #不指定目錄全名稱(chēng)時(shí)陌宿,缺省為工作目錄 Dir::ch...
    素還真人閱讀 479評(píng)論 0 0
  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    Joyyx閱讀 8,328評(píng)論 0 16
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理壳坪,服務(wù)發(fā)現(xiàn)爽蝴,斷路器,智...
    卡卡羅2017閱讀 134,697評(píng)論 18 139
  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    草里有只羊閱讀 18,334評(píng)論 0 85
  • 遠(yuǎn)處霞軒店, 佳人對(duì)鏡臺(tái)先馆。 眉裁春柳舞, 唇點(diǎn)臘梅開(kāi)磨隘。 明月施脂粉顾患, 清風(fēng)弄玉釵番捂。 蝴蝶如醉酒, 窗下久徘徊设预。
    肖建東閱讀 169評(píng)論 4 4