這幾天要對(duì)項(xiàng)目進(jìn)行修改,主要是添加對(duì)文件操作的功能。如,刪除一條信息后要同時(shí)刪除它所帶的附件。于是在空閑時(shí)間,決定把功能擴(kuò)大一下,做一套用Java實(shí)現(xiàn)的Dos命令的簡單版本。Java的IO中,要對(duì)文件進(jìn)行操作用的是class File(InputStream之類的我把它們視為是對(duì)文件內(nèi)容進(jìn)行操作的class)。所以,我們要用的的操作都是通過File這個(gè)類來實(shí)現(xiàn)的。下面,我們將實(shí)現(xiàn)所要的功能。 一. File Class 1. class File對(duì)象描述了所指定路徑下的文件和目錄的信息。通過File對(duì)象,可以查看某個(gè)路徑下的文件和目錄信息,并可操作路徑下的文件和目錄。 2. class File的應(yīng)用 2.1 查看(查詢)某個(gè)路徑下的文件信息。 2.1.1 class File的構(gòu)造函數(shù) class File有兩類構(gòu)造函數(shù),一類帶有一個(gè)參數(shù),用于產(chǎn)生一個(gè)描述參數(shù)所所指向的路徑下的文件系統(tǒng)的對(duì)象;另一類帶有兩數(shù),第一個(gè)參數(shù)表示路徑,第二個(gè)參數(shù)表示子目錄,用來產(chǎn)生描述第一個(gè)參數(shù)所指向的路徑下的某個(gè)子目錄的文件信息,子目錄名稱由第二個(gè)參數(shù)指定。如: File path = new File(“c:\\”);產(chǎn)生一個(gè)描述c:\下的文件信息的對(duì)象 File path = new File(“c:\\”, “test”);產(chǎn)生一個(gè)描述c:\的test子目錄的文件信息的對(duì)象。 2.1.2 list()和list(FilenameFilter filter)函數(shù) 1) list()函數(shù)以String數(shù)組的形式返回一個(gè)File對(duì)象所描述的文件信息。返回的是路徑下的所有文件和目錄的文件名和目錄名。 2) list(FilenameFilter filter)函數(shù)則提供了查詢功能,通過它可能查詢出滿足特定條件的文件名和目錄名。 2.1.3 用FinenameFilter接口進(jìn)行文件或目錄的查詢 2.1.3.1. 這個(gè)接口只包含一個(gè)函數(shù):boolean accept(File dir, String name),第二個(gè)參數(shù)代表一個(gè)文件或目錄的名稱,第一個(gè)參數(shù)代表文件或目錄所在的目錄的名稱。當(dāng)返回true,表示文件滿足查詢條件,要被放入結(jié)果中;否則,表示文件不滿足要求。 2.1.3.2. 工作原理 當(dāng)調(diào)用某個(gè)File對(duì)象的list(FilenameFilter filter)函數(shù)時(shí), 會(huì)對(duì)File對(duì)象中的每一個(gè)文件或目錄調(diào)用參數(shù)filter中的accept()方法。在對(duì)一個(gè)文件或目錄調(diào)用accept()函數(shù)時(shí)把它的名稱以及一個(gè)描述它所在的目錄的File對(duì)象作為參數(shù)傳給accept()函數(shù)。 2.1.4 一個(gè)簡單的實(shí)例
這個(gè)只是一個(gè)簡單的例子,只要完善accept()函數(shù),你也可以做出一個(gè)Java版的dir命令來。 2.2 當(dāng)然,我們還能通過File來文件或目錄進(jìn)行創(chuàng)建、刪除和改名的操作。
|
|