日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

File类对文件的操作应用

發布時間:2023/12/3 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 File类对文件的操作应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.在不存在的文件夾下創建文件
//在當前模塊下aaa文件下ddd下eee中創建一個e.txt文件 public class Demo2 {public static void main(String[] args) throws IOException {File file = new File("day11_myFile\\aaa\\ddd\\eee");//createNewFile()建立文件需要文件夾存在//如果文件不存在,則先創建出來if(!file.exists()){file.mkdirs();}//存在后,則在文件目錄下創建文件File file1 = new File(file, "e.txt");System.out.println(file1.createNewFile());} } 打印結果: ------------------------------------------------------------------ true
2.刪除一個文件夾里面的所有內容
//刪除一個文件夾里面的所有內容 public class Demo3 {public static void main(String[] args) {//指定刪除文件A的路徑//File A = new File("C:\\A");//deleteDir(A);}//刪除文件夾的方法【刪除的內容不會進回收站,直接在硬盤抹除】private static void deleteDir(File dir) {//獲取文件夾中的內容File[] files = dir.listFiles();//2.長度為0返回的數組無法遍歷//刪除for (File file : files) {//是文件,則直接刪除if(file.isFile()){file.delete();//如果不是文件,則不能直接刪除,需要先刪除文件夾里面的文件}else {//刪除文件夾里面的文件deleteDir(file);//1.所有文件刪完之后則參數為空文件夾傳入,返回值為0}}//循環結束,則文件夾里面的內容刪除完畢,只需刪除空的文件夾即可dir.delete();//3.跳過中間執行刪除空文件夾完成要求//空文件夾刪除層級有幾層則執行幾次【從最深的層級空文件夾開始,到A本身結束】} }
3.統計一個文件夾里面所有文件的后綴名和所對應的次數
//統計一個文件夾里面所有文件的后綴名和所對應的次數 public class Demo4 {public static void main(String[] args) {HashMap<String, Integer> map = new HashMap<>();getCount(new File("day11_myFile\\aaa"), map);//打印集合查看結果System.out.println(map);}private static void getCount(File dir, HashMap<String, Integer> map) {//獲取目標文件夾中的內容String dirName;//變量在參與運算之前必須賦初值[此處不需要]File[] files = dir.listFiles();//判斷數組是否為空[避免文件夾中有文件無權限訪問或者其他為空的情況]if(files==null){return;}for (File file : files) {//遍歷拿到每一個元素,并判斷是否為文件if (file.isFile()) {//如果為文件,則獲取文件的擴展名并添加到集合中String[] strArr = file.getName().split("\\.");//因為.表示任意元素,所以需要加\\//切割數組的最后一個元素為文件后綴名,將其定義為鍵dirName = strArr[strArr.length - 1];//判斷該文件后綴在集合中是否存在//如果存在,則將鍵對應的值加一再覆蓋原來的if (map.containsKey(dirName)) {//獲取鍵對應的值+1Integer value = map.get(dirName);value = value + 1;//覆蓋map.put(dirName, value);//否則不存在,則直接添加,初始值為1} else {map.put(dirName, 1);}//否則元素不為文件,則遞歸展開該文件夾,直到為文件再統計} else {getCount(file, map);}}} } 打印結果: ---------------------------------------------------------------------- {txt=3, java=2}
4.寫一個方法,求文件夾的大小
/*思路:下面的A文件夾的大小A文件夾- aa.txt文件- bb文件夾b1.txtb2.txtA的大小 = aa.txt大小 + bb文件夾大小*/ public class Demo6 {public static void main(String[] args) {//先指定操作文件File file = new File("day11_myIO\\aaa");long size = getSize(file);System.out.println(size);}private static long getSize(File dir) {long sum=0;//進入到文件內File[] files = dir.listFiles();//判斷數組是否為空if(files==null){return sum;}//遍歷得到每一個元素for (File file : files) {//判斷是否為文件if(file.isFile()){//如果是,則得到文件的大小sum+=file.length();//如果不是則遞歸進入文件夾內部}else {sum+=getSize(file);}}return sum;} } 打印結果: ----------------------------------------------------------- 126472134

總結

以上是生活随笔為你收集整理的File类对文件的操作应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。