File類
??File類的基本用法
java.io.File類:代表文件和目錄。?在開發中,讀取文件、生成文件、修改文件時經常會用到本類。
?File類的常見構造方法:public File(String pathname)
以pathname為路徑創建File對象,如果pathname是相對路徑,則默認的當前路徑在系統屬性user.dir中存儲。
public?class?? TestCanlendar {
????public?static?void?? main(String[] args)?throws?? Exception {
?????? System.out.println(System.getProperty("user.dir"));;
?????? File f =?new?? File("a.txt");?????//默認放到user.dir目錄下面
?????? f.createNewFile();
?????? File f2 =?new?? File("d:/b.txt");
?????? f2.createNewFile();
??? }
}
在eciplse項目開發中,user.dir就是本項目的目錄。因此,執行完畢后,在本項目和D盤下都生成了新的文件。(如果是eclipse下,一定按F5刷新目錄結構才能看到新文件)
通過File對象可以訪問文件的屬性:
方法
說明
public boolean ? exists()
判斷File是否存在
public boolean ? isDirectory()
判斷File是否是目錄
public boolean ? isFile()
判斷File是否是文件
public long ? lastModified()
返回File最后修改時間
public long ? length()
返回File大小
public String ? getName()
返回文件名
public String ? getPath()
返回文件的目錄路徑?
【示例1】測試File類基本用法
import?? java.io.File;
import?? java.util.Date;
public?class?? TestCanlendar {
????public?static?void?? main(String[] args)?throws?Exception ? {
?????? File f =?new?? File("d:/b.txt");
?????? System.out.println("File是否存在:"+f.exists());
?????? System.out.println("File是否是目錄:"+f.isDirectory());
?????? System.out.println("File是否是文件:"+f.isFile());
?????? System.out.println("File最后修改時間:"+new?? Date(f.lastModified()));
?????? System.out.println("File的大小:"+f.length());
?????? System.out.println("File的文件名:"+f.getName());
?????? System.out.println("File的目錄路徑:"+f.getPath());
??? }
}
示例1 運行效果圖
通過File對象創建空文件或目錄(在該對象所指的文件或目錄不存在的情況下)
方法
說明
createNewFile()
創建新的File
delete()
刪除File對應的文件
mkdir()
創建一個目錄;中間某個目錄缺失,則創建失敗;
mkdirs()
創建多個目錄;中間某個目錄缺失,則創建該缺失目錄;
【示例2】測試生成和刪除文件、創建目錄
public?class?? TestCanlendar {
????public?static?void?? main(String[] args)?throws?? Exception {
?????? File f =?new?? File("d:/c.txt");
?????? f.createNewFile(); ?//會在d盤下面生成c.txt文件
?????? f.delete();??????????//將該文件或目錄從硬盤上刪除
?????? File f2 =?new?? File("d:/電影/華語/大陸");???
//???? f2.mkdir();????????? //目錄結構中有一個不存在,則不會創建整個目錄樹
?????? f2.mkdirs();??????//目錄結構中有一個目錄不存在,也沒關系;創建整個目錄樹
??? }
}
遞歸遍歷目錄結構和樹狀展現
本節結合前面給大家講的遞歸算法,展示目錄結構。大家可以先建立一個目錄,下面增加幾個子文件夾或者文件,用于測試。?
【示例3】使用遞歸算法,以樹狀結構展示目錄樹
public?class?? FileTree {
????public?static?void?? main(String[] args) {
?????? File f =?new?? File("d:/電影");
???????printFile(f, 0);
??? }
????/**
??? ?*?打印文件信息
??? ?*?@param?? file?文件名稱
??? ?*?@param?? level???層次數(實際就是:第幾次遞歸調用)
??? ?*/
????static?void?? printFile(File file,int?? level){
???????for?(int?i ? = 0; i < level; i++) {
?????????? System.out.print("-");
?????? }
?????? System.out.println(file.getName()); ?
???????if(file.isDirectory()){
?????????? File[]? files = ? file.listFiles();
???????????for?? (File temp : files) {
??????????????printFile(temp, level+1);
?????????? }
?????? }
??? }
}
示例3 運行效果圖
「全棧Java筆記」是一部能幫大家從零到一成長為全棧Java工程師系列筆記。筆者江湖人稱 Mr. G,10年Java研發經驗,曾在神州數碼、航天院某所研發中心從事軟件設計及研發工作,從小白逐漸做到工程師、高級工程師、架構師。精通Java平臺軟件開發,精通JAVAEE,熟悉各種流行開發框架。
筆記包含從淺入深的六大部分:
A-Java入門階段
B-數據庫從入門到精通
C-手刃移動前端和Web前端
D-J2EE從了解到實戰
E-Java高級框架精解
F-Linux和Hadoop?