1,關於File類
File類是IO包中惟一表明磁盤文件自己的對象,
File類定義了一些與平臺無關的方法來操做文件。
經過調用File類提供的各類方法,可以完成建立、刪除文件、重命名文件、判斷文件的讀寫權限權限是否存在、設置和查詢文件的最近修改時間等操做。
2,File類主要操做
public static void main(String[] args) {
//File類的靜態變量,分別表明當前系統下的:; ; \ \
System.out.println(File.pathSeparator);
System.out.println(File.pathSeparatorChar);
System.out.println(File.separator);
System.out.println(File.separatorChar);
String pathName = "D:" + File.separator + "mytemp";//在win下等同於:D:/mytemp 或 D:\\mytemp
/**
* File共有4中構造方法,沒有無參構造方法
* 1,傳入路徑(經常使用)
* 2,傳入URI
* 3,傳入父File,子路徑
* 4,傳入父路徑,子路徑
*/
File file = new File(pathName);//得到D:/mytemp這個對象
if(file.exists() && file.isDirectory()) {//file是否存在而且是不是目錄
System.out.println("file是目錄\n");
File[] files = file.listFiles();//獲取目錄下的子目錄和文件(僅當層目錄下)
System.out.println("目錄下有:\n");
for(File f : files) {
System.out.println(f);
}
System.out.println("#############################\n");
System.out.println(files[0].isFile() ? "files[0]是文件" : "files[0]是目錄");
System.out.println("files[0]的名字:" + files[0].getName());
System.out.println("files[0]的路徑:" + files[0].getPath());
System.out.println("files[0]的絕對路徑:" + files[0].getAbsolutePath());
System.out.println("files[0]的父目錄路徑" + files[0].getParent());
System.out.println(files[0].canRead() ? "files[0]可讀" : "files[0]可讀");
System.out.println(files[0].canWrite() ? "files[0]可寫" : "files[0]可寫");
System.out.println(files[0].canExecute() ? "files[0]可執行" : "files[0]可執行");
System.out.println(files[0].isAbsolute() ? "files[0]的路徑是絕對路徑" : "files[0]的路徑不是絕對路徑");
System.out.println("files[0]的路徑轉換爲URI:" + files[0].toURI());
long lastModifiedTime = files[0].lastModified();//得到文件上次修改時間,單位s
Date date = new Date(lastModifiedTime);
SimpleDateFormat dateFormate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = dateFormate.format(date);
System.out.println("files[0]的上次修改時間:" + format);
//刪除文件的時候,不會進入回收站
//刪除目錄的時候,若是有子文件或子目錄,不會刪除成功
if(files[2].exists()) {
files[2].delete();//刪除files[2],這是一個目錄
}
if(files[6].exists()) {
files[6].deleteOnExit();//當虛擬機終止時刪除files[6],這是一個文件
}
}
}
3,建立File
@Test
public void test() throws IOException {
File parent = new File("D:" + File.separator + "mytemp");
if(parent.exists()) {
System.out.println("父目錄存在");
File childFile = new File(parent,"a.txt");
if(childFile.createNewFile()) {//建立文件,若是建立成功
System.out.println("文件建立成功!");//若是存在同名文件,不會建立
};
File childDirectory = new File(parent,"a");
if(childDirectory.mkdir()) {//建立目錄,若是建立成功
System.out.println("目錄建立成功!");//若是存在同名目錄,不會建立
};
}
}
4,刪除File
public static void deleteFile(File file) {
File[] files = file.listFiles();
if(files != null) {
for(File f : files) {
if(f.isDirectory()) {
deleteFile(f);
}
f.delete();
}
}
file.delete();
}