1.在不存在的文件夹下创建文件
public class Demo2 {public static void main(String[] args) throws IOException {File file = new File("day11_myFile\\aaa\\ddd\\eee");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) {}private static void deleteDir(File dir) {File[] files = dir.listFiles();for (File file : files) {if(file.isFile()){file.delete();}else {deleteDir(file);}}dir.delete();}
}
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)) {Integer value = map.get(dirName);value = value + 1;map.put(dirName, value);} else {map.put(dirName, 1);}} else {getCount(file, map);}}}
}
打印结果:
----------------------------------------------------------------------
{txt=3, java=2}
4.写一个方法,求文件夹的大小
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