------Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流! -------
文件操作
文件和目錄路徑名的抽象表示形式。
成員變量
StringpathSeparator= File.pathSeparator; // 路徑分隔符
System.out.println(pathSeparator); // ;
Stringseparator= File.separator;// 默認名稱分隔符
System.out.println(separator); // \
構造方法
public File(String pathname)
public File(String parent, String child)
public File(File parent, String child)
成員方法
boolean createNewFile() // 創建新文件
boolean mkdir() // 創建文件夾
boolean mkdirs() // 創建多級目錄
boolean delete() // 刪除文件/空文件夾
boolean renameTo(File dest) // 重命名,有剪切功能
boolean isDirectory() // 判斷是不是路徑
boolean isFile() // 判斷是不是文件
boolean exits() // 判斷文件/路徑是否存在
boolean canRead() // 判斷是否可讀
boolean canWrite() // 判斷是否可寫
boolean isHidden() // 判斷是否隱藏
String getAbsolutePath() // 獲取絕對路徑
String getPath() // 獲取路徑
File getParent() // 獲取父路徑
String getName() // 獲取文件名/文件夾名
long length() // 獲取文件字節數
long lastModified() // 獲取文件最後修改時間毫秒值
String[] list() // 獲取當前目錄下文件名和文件夾名,返回字符串數組形式
String[]list(FilenameFilter filter) // 獲取當前目錄下滿足過濾器條件的文件名和文件夾名,返回字符串數組形式
File[] listFiles() // 獲取當前目錄下目錄和文件,返回file對象數組形式
File[] listFiles(FilenameFilter filter) // 獲取當前目錄下滿足過濾器條件的目錄和文件,返回file對象數組形式
File[] listRoots() // 獲取當前系統根
自定義文件過濾器的實現類
// 文件過濾器
class FileFilterImple implements FileFilter {
@Override
// 測試指定抽象路徑名是否包含在pathname列表中
publicboolean accept(File pathname) { // 傳遞抽象路徑名
// 獲取文件名/文件夾名.全部轉成小寫.是否以指定字符結尾
returnpathname.getName().toLowerCase().endsWith(".txt");
}
}
斐波那契數列
package cn.itcast;
/*
* 斐波那契數列的遞歸實現方式
*/
publicclassFibonacci {
publicstaticvoid main(String[] args) {
test1(12);
System.out.println(test2(12));
test3();
}
// 數組實現
publicstaticvoid test1(intsize) {
int[] arr = newint[size];
arr[0] = arr[1] = 1;
for (inti = 2; i < arr.length; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
System.out.println(arr[arr.length - 1]);
}
// 遞歸要有出口
// 遞歸次數不能太多,否則內存溢出
// 構造方法不能遞歸使用
publicstaticint test2(inti) {
if (i == 1) {
return 1;
}
if (i == 2) {
return 1;
}
return test2(i - 1) + test2(i - 2);
}
publicstaticvoid test3() {
System.out.println("第1個月的兔子對數:1");
System.out.println("第2個月的兔子對數:1");
intf1 = 1, f2 = 1, f, M = 24;
for (inti = 3; i <= M; i++) {
f = f2;
f2 = f1 + f2;
f1 = f;
System.out.println("第" + i +"個月的兔子對數:" + f2);
}
}
}
遞歸遍歷多級目錄和刪除空目錄
package cn.itcast;
import java.io.File;
/*
* 遞歸遍歷多級目錄和刪除空目錄
*/
publicclassFileAllDir {
publicstaticvoid main(String[] args) {
// getAllDir(newFile("C:\\Windows\\System32\\drivers\\etc\\"));
getAllDir(new File("D:\\YY"));
}
// 遞歸遍歷目錄
publicstaticvoid getAllDir(File dir) {
// 獲取目錄下所有目錄和文件
File[]files= dir.listFiles();
for (File file : files) {
// 判斷如果是目錄,就繼續遍歷
if (file.isDirectory()) {
getAllDir(file);
}else{
// 不是目錄,輸出文件名
// File類重寫了toString()方法,輸出該對象的全路徑
System.out.println(file);
}
}
}
// 遞歸刪除目錄
publicstaticvoid deleteDir(File dir) {
// 列出該路徑下的所有目錄和文件
File[]files= dir.listFiles();
for (File file : files) {
// 判斷如果是目錄,繼續調用本方法遞歸該目錄
if (file.isDirectory()) {
deleteDir(file);
}else{
// 如果是文件,就直接刪除
file.delete();
}
}
// 最後只剩空目錄,直接刪除
dir.delete();
}
}