>[success] # io.File
1. `java.io.File`類主要用于描述文件或目錄路徑的抽象表示信息,可以獲取文件或目錄的特征信息,如:大小等
>[info] ## 常用方法
|方法聲明| 功能概述|
|--|--|
|File(String pathname)| 根據參數指定的路徑名來構造對象|
|File(String parent, String child) |根據參數指定的父路徑和子路徑信息構造對象|
|File(File parent, String child) |根據參數指定的父抽象路徑和子路徑信息構造對象|
|boolean exists()| 測試此抽象路徑名表示的文件或目錄是否存在|
|String getName() |用于獲取文件的名稱|
|long length() |返回由此抽象路徑名表示的文件的長度|
|long lastModified() |用于獲取文件的最后一次修改時間|
|String getAbsolutePath() |用于獲取絕對路徑信息|
|boolean delete() |用于刪除文件,當刪除目錄時要求是空目錄|
|boolean createNewFile() |用于創建新的空文件|
|boolean mkdir() |用于創建目錄|
|boolean mkdirs() |用于創建多級目錄|
|File[] listFiles() |獲取該目錄下的所有內容|
|boolean isFile() |判斷是否為文件|
|boolean isDirectory() |判斷是否為目錄|
|File[] listFiles(FileFilter filter) |獲取目錄下滿足篩選器的所有內容|
~~~
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FileTest {
public static void main(String[] args) {
File f1 = new File("./a.txt");
// 判斷當前的文件或目錄是否存在
if (f1.exists()) {
// 獲取文件名
String fileName = f1.getName();
System.out.println(fileName);
// 獲取文件大小
long fileSize = f1.length();
System.out.println(fileSize);
// 獲取文件最后修改時間
long lastTimeStamp = f1.lastModified();
Date lastTime = new Date(lastTimeStamp);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = sdf.format(lastTime);
System.out.println(str);
// 獲取絕對路徑
System.out.println("文件的絕對路徑信息是:" + f1.getAbsolutePath());
System.out.println(f1.delete() ? "文件刪除成功" : "文件刪除失敗");
} else {
try {
// 若文件不存在則創建新的空文件
System.out.println(f1.createNewFile() ? "文件創建成功" : "文件創建失敗!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
~~~
~~~
import java.io.File;
import java.io.FileFilter;
public class FileTest {
// 自定義成員方法實現指定目錄以及子目錄中所有內容的打印
public static void show(File file) {
// 獲取目錄f3下的所有內容并記錄到一維數組中
File[] filesArray = file.listFiles();
// 遍歷數組
for (File tf : filesArray) {
String name = tf.getName();
// 判斷是否為文件,若是則直接打印文件名稱
if (tf.isFile()) {
System.out.println(name);
}
// 若是目錄,則使用[]將目錄名稱括起來
if (tf.isDirectory()) {
System.out.println("[" + name + "]");
show(tf);
}
}
}
public static void main(String[] args) {
// 實現目錄的刪除和創建
File f2 = new File("d:/aa/bb/cc/dd");
if (f2.exists()) {
System.out.println("目錄名稱是:" + f2.getName());
System.out.println(f2.delete() ? "目錄刪除成功" : "目錄刪除失敗"); // 只能刪除一層
} else {
// System.out.println(f2.mkdir()? "目錄創建成功": "目錄創建失敗"); // 創建單層目錄
System.out.println(f2.mkdirs() ? "目錄創建成功" : "目錄創建失敗"); // 創建多層目錄
}
// 將指定目錄中的所有內容打印出來
File f3 = new File("d:/aa");
// 獲取目錄f3下的所有內容并記錄到一維數組中
File[] filesArray = f3.listFiles();
// 遍歷數組
for (File tf : filesArray) {
String name = tf.getName();
// 判斷是否為文件,若是則直接打印文件名稱
if (tf.isFile()) {
System.out.println(name);
}
// 若是目錄,則使用[]將目錄名稱括起來
if (tf.isDirectory()) {
System.out.println("[" + name + "]");
}
}
// 實現目錄中所有內容獲取的同時進行過濾
// 匿名內部類的語法格式:接口/父類類型 引用變量名 = new 接口/父類類型() { 方法的重寫 };
/*
* FileFilter fileFilter = new FileFilter() {
*
* @Override
* public boolean accept(File pathname) {
* // 若文件名是以.avi為結尾,則返回true表示保留 否則返回false就是表示丟棄
* return pathname.getName().endsWith(".avi");
* }
* };
*/
// Lambda表達式的格式:(參數列表) -> {方法體}
FileFilter fileFilter = (File pathname) -> {
return pathname.getName().endsWith(".avi");
};
File[] filesArray2 = f3.listFiles(fileFilter);
for (File tf : filesArray2) {
System.out.println(tf);
}
// 遞歸
show(new File("d:/aa"));
}
}
~~~
- windows -- 環境變量
- Vscode -- 編寫java
- 初始java
- java -- 關鍵字
- 編寫第一個java程序
- java -- 注釋
- 計算機存儲 -- 進制
- java -- 類型
- java -- 變量
- 數字類型
- 布爾類型
- 字符類型
- 類型轉換
- 雙等比較是什么
- java -- 運算符
- 算數運算符
- 字符串拼接
- 關系/比較運算符
- 自增減運算符
- 邏輯運算符
- 三目運算
- 賦值運算符
- 移位運算符
- 位運算符
- 運算符優先級
- java -- 流程控制語句
- if /else if /if -- 判斷
- switch case分支結構
- for -- 循環
- 用雙重for循環
- while -- 循環
- do while -- 循環
- 案例練習
- java -- 數組
- 數組的存儲
- 數組的增刪改查
- 數組的特點
- 數組案例
- 二維數組
- 數組的工具方法
- java -- 方法
- java -- 方法的重載
- java -- 方法的調用流程
- java -- 類方法傳參注意事項
- java -- 方法練習案例
- 對比 return break continue
- for each循環
- java -- 基礎練習
- java -- 面向對象
- java -- 創建類和對象
- java -- 訪問控制符
- java -- 類成員方法
- java -- 構造方法
- java -- this
- java -- 封裝
- java -- 對象內存圖
- java -- 創建對象案例
- java -- static
- java -- 繼承
- super -- 關鍵字
- java -- 構造塊和靜態代碼塊
- java -- 重寫
- java -- final
- java -- 多態
- java -- 抽象類
- java -- 接口
- 引用類型數據轉換
- 綜合案例
- java -- 內部類
- java -- 回調模式
- java -- 枚舉類型
- java -- switch 使用枚舉
- java -- 枚舉方法使用
- java -- 枚舉類實現接口
- java -- javaBean
- java -- package 包
- java -- import
- java -- 遞歸練習
- java -- 設計模式
- 單例模式
- java -- 注解
- java -- 元注解
- Java -- 核心類庫
- java -- 處理字符串
- Java -- String
- String -- 常用方法
- String -- 正則
- Java -- StringBuilder 和 StringBuffer
- 知識點
- Java -- StringJoiner 字符串拼接
- 練習題
- 字符串的總結
- Java -- 包裝類
- Integer
- Double
- Boolean
- Character
- java -- 集合類
- java -- util.Collection
- Iterator接口
- java -- util.List
- java -- ArrayList
- java -- util.Queue
- java -- util.Set
- java -- util.Map
- java -- util.Collections
- Java -- Math
- Java -- java.lang
- Java -- Object
- Java -- 獲取當前時間戳
- Java -- 異常
- Java -- java.util
- java -- Date
- java -- Calender
- Java -- java.text
- Java -- SimpleDateFormat
- Java -- java.time
- Java -- java.io
- java -- io.File
- java -- 泛型
- IDEA -- 用法