elasticsearch入門系列">elasticsearch入門系列
636
2022-05-29
一、File文件操作
1.File類概述和構造方法
File類介紹
它是文件和目錄路徑名的抽象表示
文件和目錄是可以通過File封裝成對象的
對于File而言,其封裝的并不是一個真正存在的文件,僅僅是一個路徑名而已.它可以是存在的,也可以是不存在的.將來是要通過具體的操作把這個路徑的內容轉換為具體存在的
File類的構造方法
示例代碼
public class FileDemo01 { public static void main(String[] args) { //File(String pathname): 通過將給定的路徑名字符串轉換為抽象路徑名來創建新的 File實例 File f1 = new File("E:\itcast\java.txt"); System.out.println(f1); //File(String parent, String child): 從父路徑名字符串和子路徑名字符串創建新的 File實例 File f2 = new File("E:\itcast","java.txt"); System.out.println(f2); //File(File parent, String child): 從父抽象路徑名和子路徑名字符串創建新的 File實例 File f3 = new File("E:\itcast"); File f4 = new File(f3,"java.txt"); System.out.println(f4); } }
2.絕對路徑和相對路徑
絕對路徑
是一個完整的路徑,從盤符開始
相對路徑
是一個簡化的路徑,相對當前項目下的路徑
示例代碼
public class FileDemo02 { public static void main(String[] args) { // 是一個完整的路徑,從盤符開始 File file1 = new File("D:\itheima\a.txt"); // 是一個簡化的路徑,從當前項目根目錄開始 File file2 = new File("a.txt"); File file3 = new File("模塊名\a.txt"); } }
3.File類創建功能
方法分類
示例代碼
public class FileDemo02 { public static void main(String[] args) throws IOException { //需求1:我要在E:\itcast目錄下創建一個文件java.txt File f1 = new File("E:\itcast\java.txt"); System.out.println(f1.createNewFile()); System.out.println("--------"); //需求2:我要在E:\itcast目錄下創建一個目錄JavaSE File f2 = new File("E:\itcast\JavaSE"); System.out.println(f2.mkdir()); System.out.println("--------"); //需求3:我要在E:\itcast目錄下創建一個多級目錄JavaWEB\HTML File f3 = new File("E:\itcast\JavaWEB\HTML"); // System.out.println(f3.mkdir()); System.out.println(f3.mkdirs()); System.out.println("--------"); //需求4:我要在E:\itcast目錄下創建一個文件javase.txt File f4 = new File("E:\itcast\javase.txt"); // System.out.println(f4.mkdir()); System.out.println(f4.createNewFile()); } }
4.File類刪除功能
方法分類
示例代碼
public class FileDemo03 { public static void main(String[] args) throws IOException { // File f1 = new File("E:\itcast\java.txt"); //需求1:在當前模塊目錄下創建java.txt文件 File f1 = new File("myFile\java.txt"); // System.out.println(f1.createNewFile()); //需求2:刪除當前模塊目錄下的java.txt文件 System.out.println(f1.delete()); System.out.println("--------"); //需求3:在當前模塊目錄下創建itcast目錄 File f2 = new File("myFile\itcast"); // System.out.println(f2.mkdir()); //需求4:刪除當前模塊目錄下的itcast目錄 System.out.println(f2.delete()); System.out.println("--------"); //需求5:在當前模塊下創建一個目錄itcast,然后在該目錄下創建一個文件java.txt File f3 = new File("myFile\itcast"); // System.out.println(f3.mkdir()); File f4 = new File("myFile\itcast\java.txt"); // System.out.println(f4.createNewFile()); //需求6:刪除當前模塊下的目錄itcast System.out.println(f4.delete()); System.out.println(f3.delete()); } }
5.File類判斷和獲取功能
判斷功能
獲取功能
示例代碼
public class FileDemo04 { public static void main(String[] args) { //創建一個File對象 File f = new File("myFile\java.txt"); // public boolean isDirectory():測試此抽象路徑名表示的File是否為目錄 // public boolean isFile():測試此抽象路徑名表示的File是否為文件 // public boolean exists():測試此抽象路徑名表示的File是否存在 System.out.println(f.isDirectory()); System.out.println(f.isFile()); System.out.println(f.exists()); // public String getAbsolutePath():返回此抽象路徑名的絕對路徑名字符串 // public String getPath():將此抽象路徑名轉換為路徑名字符串 // public String getName():返回由此抽象路徑名表示的文件或目錄的名稱 System.out.println(f.getAbsolutePath()); System.out.println(f.getPath()); System.out.println(f.getName()); System.out.println("--------"); // public File[] listFiles():返回此抽象路徑名表示的目錄中的文件和目錄的File對象數組 File f2 = new File("E:\itcast"); File[] fileArray = f2.listFiles(); for(File file : fileArray) { // System.out.println(file); // System.out.println(file.getName()); if(file.isFile()) { System.out.println(file.getName()); } } } }
6.File類練習一
案例需求
在當前模塊下的aaa文件夾中創建一個a.txt文件
實現步驟
創建File對象,指向aaa文件夾
判斷aaa文件夾是否存在,如果不存在則創建
創建File對象,指向aaa文件夾下的a.txt文件
創建這個文件
代碼實現
public class Test1 { public static void main(String[] args) throws IOException { //練習一:在當前模塊下的aaa文件夾中創建一個a.txt文件 /* File file = new File("filemodule\aaa\a.txt"); file.createNewFile();*/ //注意點:文件所在的文件夾必須要存在. //1.創建File對象,指向aaa文件夾 File file = new File("filemodule\aaa"); //2.判斷aaa文件夾是否存在,如果不存在則創建 if(!file.exists()){ //如果文件夾不存在,就創建出來 file.mkdirs(); } //3.創建File對象,指向aaa文件夾下的a.txt文件 File newFile = new File(file,"a.txt"); //4.創建這個文件 newFile.createNewFile(); } }
7.File類練習二
案例需求
刪除一個多級文件夾
實現步驟
定義一個方法,接收一個File對象
遍歷這個File對象,獲取它下邊的每個文件和文件夾對象
判斷當前遍歷到的File對象是文件還是文件夾
如果是文件,直接刪除
如果是文件夾,遞歸調用自己,將當前遍歷到的File對象當做參數傳遞
參數傳遞過來的文件夾File對象已經處理完成,最后直接刪除這個空文件夾
代碼實現
public class Test2 { public static void main(String[] args) { //練習二:刪除一個多級文件夾 //delete方法 //只能刪除文件和空文件夾. //如果現在要刪除一個有內容的文件夾? //先刪掉這個文件夾里面所有的內容. //最后再刪除這個文件夾 File src = new File("C:\Users\apple\Desktop\src"); deleteDir(src); } //1.定義一個方法,接收一個File對象 private static void deleteDir(File src) { //先刪掉這個文件夾里面所有的內容. //遞歸 方法在方法體中自己調用自己. //注意: 可以解決所有文件夾和遞歸相結合的題目 //2.遍歷這個File對象,獲取它下邊的每個文件和文件夾對象 File[] files = src.listFiles(); //3.判斷當前遍歷到的File對象是文件還是文件夾 for (File file : files) { //4.如果是文件,直接刪除 if(file.isFile()){ file.delete(); }else{ //5.如果是文件夾,遞歸調用自己,將當前遍歷到的File對象當做參數傳遞 deleteDir(file);//參數一定要是src文件夾里面的文件夾File對象 } } //6.參數傳遞過來的文件夾File對象已經處理完成,最后直接刪除這個空文件夾 src.delete(); } }
8.File類練習三
案例需求
統計一個文件夾中每種文件的個數并打印
打印格式如下:
txt:3個 doc:4個 jpg:6個 …
實現步驟
定義一個方法,參數是HashMap集合用來統計次數和File對象要統計的文件夾
遍歷File對象,獲取它下邊的每一個文件和文件夾對象
判斷當前File對象是文件還是文件夾
如果是文件,判斷這種類型文件后綴名在HashMap集合中是否出現過
沒出現過,將這種類型文件的后綴名存入集合中,次數存1
出現過,獲取這種類型文件的后綴名出現的次數,對其+1,在存回集合中
如果是文件夾,遞歸調用自己,HashMap集合就是參數集合,File對象是當前文件夾對象
代碼實現
public class Test3 { public static void main(String[] args) { //統計一個文件夾中,每種文件出現的次數. //統計 --- 定義一個變量用來統計. ---- 弊端:同時只能統計一種文件 //利用map集合進行數據統計,鍵 --- 文件后綴名 值 ---- 次數 File file = new File("filemodule"); HashMap
5G教育 Java
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。