package cn.zhoucufeng; import java.io.File; import java.io.IOException; import java.util.Arrays; import java.util.Iterator; import java.util.List; /* * File 類 ?-----做用 * * 1.對操做系統中的文件進行操做! * * 2.File類的靜態成員變量 * 1.pathSeparator [;] 2.separator[\] * * 3.構造方法 * 1. * * * 4.主要功能 * 建立、刪除、判斷、獲取! * * 5.便利方式? * 1.遍歷目錄獲取list * 2.遞歸便利一個目錄下的全部文件! * * 6.文件過濾器? * * */ public class FileDemo { public static void main(String[] args) throws IOException { pathSeparatorDemo(); //1.File 靜態方法,不用new。直接調用! function(); //2.File 建立和刪除功能!-------->會建立在本地電腦! newFile(); //3.File構造方法 runFile(); //4.File獲取功能 4 runFile01(); //5.File判斷功能 判斷文件夾是否存在? 是什麼路徑? // bianList(); //6.便利目錄獲取1.(list)獲取 2.加強for循環 3.迭代方式! File dir=new File("c:\\windows"); // getAllDir(dir); //7.遞歸便利 目錄下的文件(夾) System.out.println("============"); fileDemo(); //8.文件過濾器【能夠根據須要,只獲取知足條件】 } private static void fileDemo() { File a1=new File("c:\\windows"); File []a1Arr=a1.listFiles(new MyFilter()); //打印Windows下全部帶 EXE的文件 for(File f:a1Arr){ System.out.println(f); } } private static void getAllDir(File dir) { //遞歸!本身調用本身! File []fileArr=dir.listFiles(); //調用方法listFiles()對目錄,dir進行遍歷 for(File f:fileArr) //加強for循環 { if (f.isDirectory()) // 判斷變量f表示的路徑是否是文件夾 { getAllDir(f); // 是一個目錄,就要去遍歷這個目錄 // 繼續調用getAllDir,傳遞他目錄 }else { System.out.println(f); } } } private static void bianList() { File a1=new File("c:\\windows"); String [] arr=a1.list(); //獲取目錄下的文件以及文件夾! List<String> li = Arrays.asList(arr); //數組轉換成ArrayList! /* for (Iterator it = li.iterator(); it.hasNext();) { //迭代方式獲取 文件 String string = (String) it.next(); System.err.println(string); }*/ /* for (String string : arr) { //加強for循環方式! System.out.println(string); }*/ System.out.println(li); //獲取目錄下的文件以及文件夾!直接輸出 } private static void runFile01() { // File a1=new File("c:\\windows\\addins\\FXSEXT.ecf"); boolean b=a1.exists(); //判斷文件是否存在 boolean c=a1.isAbsolute(); //判斷是不是文件夾(絕對路徑)! boolean d=a1.isDirectory(); //判斷是不是文件夾(路徑) System.out.println(c); System.out.println(d); System.out.println(b); } //3.File的構造方法! private static void newFile() { File a1=new File("d:"); System.out.println(a1); File partent=new File("d:"); //設置父親 File file=new File(partent,"game"); //經過父親獲取 子級目錄 System.out.println(file); //輸出 d:\game File a3=new File("d:","game"); //注意 這裏是中間加了一個"," ! 雙引號中加逗號 System.out.println(a3); //輸出 d:\game } //1.File的靜態方法 [pathSeparator] public static void pathSeparatorDemo(){ String a1=File.pathSeparator; //用 String 定義! System.out.println(a1); //打印 [;] String a2=File.separator; System.out.println(a2); //打印 [\] } //2.File 建立和刪除功能!-------->會建立在本地電腦! public static void function() throws IOException{ //1.建立文件 createNewFile File file=new File("d:\\helloworld.file"); boolean a1=file.createNewFile(); System.out.println(a1); //2.建立單級文件 mkdir File file01=new File("d:\\helloworld\\set"); boolean a2=file01.mkdir(); System.out.println(a2); //3.建立多級文件 mkdirs File file02=new File("d:\\game\\youyi\\cf2.0"); boolean a3=file02.mkdirs(); System.out.println(a3); //4.刪除,不通過回收站!delete File file03=new File("d:\\你好"); boolean a4=file03.delete(); System.out.println(a4); } public static void runFile(){ //4.File的主要功能!獲取4種! File a1=new File("c:\\windows\\addins\\FXSEXT.ecf"); String name=a1.getName(); //獲取路徑最後部分的名字 long num=a1.length(); //文件的字節數! File path=a1.getAbsoluteFile(); //獲取文件的絕對路徑 File parent=a1.getParentFile(); //獲取文件的父路徑 System.out.println("getName:獲取路徑最後部分的名字"+name); System.out.println("length:文件的字節數 "+num); System.out.println("獲取文件的絕對路徑 "+path); System.out.println("獲取文件的父路徑 "+parent); } } package cn.zhoucufeng; import java.io.File; import java.io.FileFilter; import java.io.FilenameFilter; public class MyFilter implements FileFilter { public boolean accept(File pathname) { return pathname.getName().endsWith(".exe"); } 最下面的類 MyFile 須要新建,而且要和FileDemo在同一包下!