java.io.File類:代表文件和目錄。在開發中,讀取文件、生成文件、刪除文件、修改文件的屬性時經常會用到的本類。
File類的常見構造方法:public File(String pathname)
以pathname為路徑創建File對象,如果pathname是相對路徑,則默認的當前路徑在系統屬性user.dir中儲存。路徑可以是絕對路徑和相對路徑,分隔符采用\\或者/。
通過File對象可以訪問文件的屬性。
public String getName()
public String getPath()
public boolean isFile()
public boolean isDirectory()
public boolean canRead()
public boolean canWrite()
public boolean exists()
public long length()
public boolean isHidden()
public long lastModified()
public File [] listFiles()
通過File對象創建空文件或目錄(在該對象所指的文件或目錄不存在的情況下)。
• public boolean createNewFile()throws IOException
• public boolean delete() • public boolean mkdir(), mkdirs() 注意兩個的區別!!
示例:
package cn.tanjianjie.test;
import java.io.File;
import java.io.IOException;
import java.util.Date;
/**
* 測試File類
* @author 譚鍵傑
*/
public class TestFile {
public static void main(String[] args) throws IOException {
File f = new File("d:\\a.txt");//絕對路徑創建File類
System.out.println(f);
f.renameTo(new File("d:/bb.txt"));//相對路徑,改文件名
System.out.println(System.getProperty("user.dir"));//顯示默認目錄,所在儲存空間
//在當前項目里面創建文件
File f2=new File("gg.txt");
System.out.println("File是否存在:"+f2.exists());
System.out.println("File是否在目錄:"+f2.isDirectory());
System.out.println("File是否是文件:"+f2.isFile());
System.out.println("File最后修改時間:"+new Date(f2.lastModified()));
System.out.println("File的大小:"+f2.length());
System.out.println("File的文件名:"+f2.getName());
System.out.println("File的目錄路徑:"+f2.getPath());
File f3=new File("d:/電影/華語/大陸");
//boolean flag=f3.mkdir();//迷路結構中有一個不存在,則不會創建整個目錄樹
boolean flag=f3.mkdirs();//目錄結構中有一個不存在也沒關系,創建整個目錄樹
System.out.println(flag);//創建失敗
}
}
運行結果:
遞歸遍歷目錄結構和樹狀展現:
遞歸結構包括兩個部分:
1、定義遞歸頭。如果沒有頭,將陷入死循環,也就是遞歸的結束條件。
2、遞歸體。
示例:
package cn.tanjianjie.test;
import java.io.File;
public class TestFileTree {
public static void main(String[] args){
File f=new File("c:/c語言作業專用");
printFile(f,0);
}
static void printFile(File file,int level){//知道第幾層被調用
//輸出層數
for(int i=0;i<level;i++){
System.out.println("-");
}
System.out.println(file.getName());
if(file.isDirectory()){//若果是目錄
File[] files=file.listFiles();//所有子目錄、子文件
for(File temp:files){
printFile(temp,level+1);//遞歸調用
}
}
}
}
運行結果:
枚舉類:
枚舉類型的定義包括枚舉聲明和枚舉體。格式如下:
enum 枚舉名{
枚舉體(常量列表)
}
枚舉體就是放置一下額常用列表,所有的枚舉類隱性地繼承java.lang.Enum。枚舉實質上還是,而每個被枚舉的成員實質就是一個枚舉類型的實例,他們默認都是public static final修飾的。可以直接通過枚舉的類型名使用。
示例:
package cn.tanjianjie.test;
/**
* 測試枚舉類
* @author 譚鍵傑
*/
public class TestEnum {
public static void main(String[] args){
System.out.println(Season.SPRING);
Season a=Season.AUTUMN;
switch(a){
case SPRING:
System.out.println("春天");
break;
case SUMMER:
System.out.println("夏天");
break;
case AUTUMN:
System.out.println("秋天");
break;
case WINTER:
System.out.println("冬天");
break;
}
}
//定義枚舉類
enum Season{
SPRING,SUMMER,AUTUMN,WINTER
}
enum Week{
星期一,星期二,星期三,星期四,星期五,星期六,星期天
}
}
運行結果: