愚公系列2022年01月 Java教學課程 52-File文件操作

      網友投稿 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 hm = new HashMap<>(); getCount(hm, file); System.out.println(hm); } //1.定義一個方法,參數是HashMap集合用來統計次數和File對象要統計的文件夾 private static void getCount(HashMap hm, File file) { //2.遍歷File對象,獲取它下邊的每一個文件和文件夾對象 File[] files = file.listFiles(); for (File f : files) { //3.判斷當前File對象是文件還是文件夾 if(f.isFile()){ //如果是文件,判斷這種類型文件后綴名在HashMap集合中是否出現過 String fileName = f.getName(); String[] fileNameArr = fileName.split("\."); if(fileNameArr.length == 2){ String fileEndName = fileNameArr[1]; if(hm.containsKey(fileEndName)){ //出現過,獲取這種類型文件的后綴名出現的次數,對其+1,在存回集合中 Integer count = hm.get(fileEndName); //這種文件又出現了一次. count++; //把已經出現的次數給覆蓋掉. hm.put(fileEndName,count); }else{ // 沒出現過,將這種類型文件的后綴名存入集合中,次數存1 hm.put(fileEndName,1); } } }else{ //如果是文件夾,遞歸調用自己,HashMap集合就是參數集合,File對象是當前文件夾對象代碼實現 getCount(hm,f); } } } }

      【愚公系列】2022年01月 Java教學課程 52-File文件操作

      5G教育 Java

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:HarmonyOS之數據管理·關系型數據庫的應用
      下一篇:Squid緩存代理服務器
      相關文章
      亚洲精品蜜桃久久久久久| 亚洲成av人影院| 亚洲产国偷V产偷V自拍色戒| 亚洲国产精品无码久久久久久曰| 亚洲人成电影在线观看青青| 亚洲国产精品嫩草影院在线观看 | 91亚洲国产成人久久精品网址| 亚洲国产人成网站在线电影动漫| 人人狠狠综合久久亚洲婷婷| 国产亚洲高清不卡在线观看| 亚洲国产精品无码专区影院 | 亚洲精品无码专区在线播放| 亚洲欧好州第一的日产suv| 亚洲欧美日韩中文字幕在线一区| 久久国产亚洲精品| 亚洲av成人无码网站…| 精品国产亚洲AV麻豆| 亚洲国产成人久久综合区| 亚洲av日韩av欧v在线天堂| 久久精品国产亚洲av高清漫画| 国产精品V亚洲精品V日韩精品 | 日本亚洲高清乱码中文在线观看| 久久精品亚洲AV久久久无码| 91丁香亚洲综合社区| 亚洲一区二区三区高清视频| 亚洲精品第五页中文字幕| 亚洲宅男天堂a在线| 最新亚洲卡一卡二卡三新区| 亚洲精品成a人在线观看☆| 在线精品自拍亚洲第一区| 亚洲精品偷拍视频免费观看| 亚洲综合图色40p| 久久精品国产亚洲av成人| 91亚洲一区二区在线观看不卡 | 亚洲香蕉久久一区二区三区四区| 亚洲色少妇熟女11p| 亚洲?v女人的天堂在线观看| 亚洲中文字幕在线观看| 亚洲2022国产成人精品无码区| 亚洲高清无在码在线无弹窗| 国产精品亚洲四区在线观看|