IT培訓網 - IT職場人學IT技術上IT培訓網
Java編程開發中文件與目錄管理
時間:2016-08-31 14:12:19??來源:Java培訓網??作者:IT培訓網??已有:名學員訪問該課程
在Java語言中,該如何管理文件與目錄呢,做好這些有什么好處呢,其實文件和目錄都是讓我們簡化工作,方便管理文件的一個有效方式,下面就讓達內IT培訓網小編來給大家詳細介紹下如何實現Java中文件與目錄的管理吧!
目錄是管理文件的特殊機制,同類文件保存在同一個目錄下不僅可以簡化文件管理,而且還可以提高工作效率。Java 語言在 java.io 包中定義了一個 File 類專門用來管理磁盤文件和目錄。
每個 File 類對象表示一個磁盤文件或目錄,其對象屬性中包含了文件或目錄的相關信息。通過調用 File 類提供的各種方法,能夠創建、刪除、重名名文件、判斷文件的讀寫權限以及是否存在,設置和查詢文件的最近修改時間等。不同操作系統具有不同的文件系統組織方式,通過使用 File 類對象,Java 程序可以用與平臺無關的、統一的方式來處理文件和目錄。
創建 File 類的對象
創建 File 類對象需要給出其所對應的文件名或目錄名,File 類的構造方法如表 10-9 所示。
表 10-9 File 類的構造方法 |
|
構造方法 |
功能描述 |
public File(String path) |
指定與 File 對象關聯的文件或目錄名,path 可以包含路徑及文件和目錄名 |
public File(String path, String name) |
以 path 為路徑,以 name 為文件或目錄名創建 File 對象 |
public File(File dir, String name) |
用現有的 File 對象 dir 作為目錄,以 name 作為文件或目錄名創建 File 對象 |
public File(UR ui) |
使用給定的統一資源定位符來定位文件 |
在使用 File 類的構造方法時,需要注意下面幾點:
(1)path 參數可以是絕對路徑,也可以是相對路徑,也可以是磁盤上的某個目錄。
( 2)由于不同操作系統使用的目錄分隔符不同,可以使用 System 類的一個靜態變量System.dirSep,來實現在不同操作系統下都通用的路徑。如:
"d:"+System.dirSep+"myjava"+System.dirSep+"file"
獲取屬性和操作
借助 File 對象,可以獲取文件和相關目錄的屬性信息并可以對其進行管理和操作。表 10-10列出了其常用的方法及說明。
表 10-10 File 的常用方法 |
|
方法 |
功能描述 |
boolean canRead() |
如果文件可讀,返回真,否則返回假 |
boolean canWrite() |
如果文件可寫,返回真,否則返回假 |
boolean exists() |
判斷文件或目錄是否存在 |
boolean createNewFile() |
若文件不存在,則創建指定名字的空文件,并返回真,若不存在返回假 |
boolean isFile() |
判斷對象是否代表有效文件 |
boolean isDirectory() |
判斷對象是否代表有效目錄 |
boolean equals(File f) |
比較兩個文件或目錄是否相同 |
string getName() |
返回文件名或目錄名的字符串 |
string getPath() |
返回文件或目錄路徑的字符串 |
long length() |
返回文件的字節數,若 File 對象代表目錄,則返回 0 |
long lastModified() |
返回文件或目錄最近一次修改的時間 |
String[] list() |
將目錄中所有文件名保存在字符串數組中并返回,若 File 對象不是目錄返回 null |
boolean delete() |
刪除文件或目錄,必須是空目錄才能刪除,刪除成功返回真,否則返回假 |
boolean mkdir() |
創建當前目錄的子目錄,成功返回真,否則返回假 |
boolean renameTo(File newFile) |
將文件重命名為指定的文件名 |
【例 10-11】判斷輸入的絕對路徑是代表一個文件或一個目錄。若是文件輸出此文件的絕對路徑,并判斷此文件的文件屬性(是否可讀寫或隱藏);若是目錄則輸出該目錄下所有文件(不包括隱藏文件)(查看源代碼)。
//********** ep10_11.java **********
import java.io.*;
class ep10_11{
public static void main(String args[]) throws IOException{
String FilePath;
InputStreamReader in=new InputStreamReader(System.in);
BufferedReader a=new BufferedReader(in);
System.out.println("請輸入一個絕對路徑:");
FilePath=a.readLine(); //將 FilePath 作為輸入值
File FileName=new File(FilePath); //獲得此路徑的文件名稱
if (FileName.isDirectory()){ //判斷此文件是否為目錄
System.out.println((FileName.getName())+"為一個目錄");
System.out.println("================");
File FileList[]=FileName.listFiles(); //將目錄下所有文件存入數組
for(int i=0;i<FileList.length;i++){
if(FileList[i].isHidden()==false){ //判斷是否為隱藏文件
System.out.println(FileList[i].getName()); //輸出非隱藏文件
}
}
}
else{
System.out.println((FileName.getName())+"為一個文件");
System.out.println("================");
//獲得文件絕對路徑
System.out.println("絕對路徑為:"+FileName.getAbsolutePath());
//判斷此文件是否可讀取
System.out.println(FileName.canRead()?"可讀取":"不可讀取");
//判斷此文件是否可修改
System.out.println(FileName.canWrite()?"可修改":"不可修改");
//判斷此文件是否為隱藏
System.out.println(FileName.isHidden()?"為隱藏文件":"非隱藏文件");
}
}
}
運行結果如圖 10-11 所示:
圖 10-11 輸入一個文件路徑后例 10_11 的運行結果
- 上一篇:Java編程開發面向字節流的應用
- 下一篇:Java編程開發中文件的隨機讀寫