Java I/O技術(shù)之文件操作詳解
在java程序設(shè)計(jì)中,I/O操作是通過(guò)java.io包中的類(lèi)和接口來(lái)實(shí)現(xiàn)的,因此,我們第一步要做的就是import這個(gè)包。
java.io提供了一個(gè)File類(lèi),這是類(lèi)很容易讓人產(chǎn)生誤會(huì),它表示的是一個(gè)文件名或者目錄名,而不是文件本身,所以通過(guò)這個(gè)類(lèi)沒(méi)法對(duì)文件里面的數(shù)據(jù)進(jìn)行操作。File類(lèi)提供了一序列對(duì)文件操作的功能:刪除文件,創(chuàng)建目錄,查詢(xún)文件大小等等。要想對(duì)文件數(shù)據(jù)進(jìn)行操作那就需要流對(duì)象了,在這里就暫時(shí)不做介紹。
下面通過(guò)一個(gè)叫做FileExtension類(lèi)來(lái)對(duì)File類(lèi)中的各種操作進(jìn)行封裝,通過(guò)這個(gè)例子希望大家很好的使用File類(lèi),在這里我只提供DeleteFile的實(shí)現(xiàn)。該例子引用自《java實(shí)例技術(shù)手冊(cè)》這本書(shū)。
public class FileExtension { /** * delete a specify file * @param filename : specify a file */ public static void DeleteFile(String filename){} //這個(gè)函數(shù)的功能是刪除一個(gè)指定的存在的文件 protected static void fail(String msg) throws IllegalArgumentException{ throw new IllegalArgumentException(msg); } }
DeleteFile的實(shí)現(xiàn)如下:
public static void DeleteFile(String filename){ File file = new File(filename); if(!file.exists()) fail("Delete: no such file or directory:" + filename); if(!file.canWrite()) fail("Delete: write protected: " + filename); if(file.isDirectory()){ String[] files = file.list(); if(files.length > 0) fail("Delete: directory not empty: " + filename); } boolean success = file.delete(); if(!success) fail("Delete: deletion failed"); }
如果你詳細(xì)的看了上面的例子的話,那么你就會(huì)發(fā)現(xiàn)java對(duì)File的包裝使我們使用起來(lái)非常簡(jiǎn)便,如果有興趣的話你可以增加一些函數(shù),比如CreateDir,ListDir,F(xiàn)ileSize等等一些功能,這將對(duì)你有所幫助。
相關(guān)文章
spring boot 測(cè)試單元修改數(shù)據(jù)庫(kù)不成功的解決
這篇文章主要介紹了spring boot 測(cè)試單元修改數(shù)據(jù)庫(kù)不成功的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09java實(shí)現(xiàn)Yaml轉(zhuǎn)Json示例詳解
這篇文章主要為大家介紹了java實(shí)現(xiàn)Yaml轉(zhuǎn)Json示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02詳解java如何實(shí)現(xiàn)帶RequestBody傳Json參數(shù)的GET請(qǐng)求
在調(diào)試Fate平臺(tái)時(shí),遇到了一個(gè)奇葩的接口類(lèi)型,該接口為Get方式,入?yún)⑹且粋€(gè)json類(lèi)型在body中傳遞,使用body中傳參的話為什么不用POST請(qǐng)求而使用了GET請(qǐng)求,下面我們就來(lái)深入研究一下2024-02-02詳解Java8的forEach(...)如何提供index值
這篇文章主要介紹了詳解Java8的forEach(...)如何提供index值,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Spring Security基本架構(gòu)與初始化操作流程詳解
這篇文章主要介紹了Spring Security基本架構(gòu)與初始化操作流程,Spring Security是一個(gè)能夠?yàn)榛赟pring的企業(yè)應(yīng)用系統(tǒng)提供聲明式的安全訪問(wèn)控制解決方案的安全框架2023-03-03Java底層基于二叉搜索樹(shù)實(shí)現(xiàn)集合和映射/集合Set功能詳解
這篇文章主要介紹了Java底層基于二叉搜索樹(shù)實(shí)現(xiàn)集合和映射/集合Set功能,結(jié)合實(shí)例形式分析了Java使用二叉搜索樹(shù)實(shí)現(xiàn)集合和映射相關(guān)操作技巧,需要的朋友可以參考下2020-03-03