目录
1.创建文件
package filetest1;
import java.io.File;
import java.io.IOException;
public class FileDemo {
public static void main(String[] args) throws IOException {
File f1=new File("G:\\JavaProgram\\java\\src\\filetest1\\aaa");
f1.mkdirs();//创建多级文件夹
File f2=new File("G:\\JavaProgram\\java\\src\\filetest1\\aaa\\a.txt");
f2.createNewFile();//创建文件
}
}
2.单个文件夹查找文件
package filetest2;
import java.io.File;
import java.io.FileFilter;
public class FileDemo {
public static void main(String[] args) {
File f1 = new File("G:\\JavaProgram\\java\\src\\filetest2");
File[] files = f1.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.isFile() && pathname.getName().endsWith(".avi");
}
});
for (File f : files)
System.out.println(f.getName());
}
}
3.遍历硬盘查找文件
package filetest3;
import java.io.File;
public class FileDemo {
public static void main(String[] args) {
findAvis();
}
public static void findAvis() {
File[] files = File.listRoots();
for (File file : files) findAvi(file);
}
public static void findAvi(File src) {
File[] files = src.listFiles();
if (files == null) return;
for (File file : files) {
if (file.isFile()) {
if (file.getName().endsWith(".avi")) System.out.println(file.getName());
} else {
findAvi(file);
}
}
}
}
4.删除文件夹
package filetest4;
import java.io.File;
public class FileDemo {
public static void main(String[] args) {
File file = new File("G:\\JavaProgram\\java\\src\\filetest4\\a");
delete(file);
}
public static void delete(File src) {
File[] files = src.listFiles();
for (File file : files) {
if (file.isFile()) file.delete();//直接删除子文件
else {
delete(file);//删除子文件夹(递归)
}
}
src.delete();//删除父文件夹
}
}
5.统计文件夹大小
package filetest5;
import java.io.File;
public class FileDemo {
public static void main(String[] args) {
File file=new File("G:\\JavaProgram\\java\\src\\filetest5");
System.out.println(count(file)+"字节");
}
public static long count(File src){
long len=0;
File[] files=src.listFiles();
for (File file:files){
if(file.isFile())len+=file.length();//累加文件大小
else {
len+=count(file);//累加文件夹大小(递归)
}
}
return len;
}
}
6.统计各种文件数量
package filetest6;
import java.io.File;
import java.nio.file.Files;
import java.util.HashMap;
public class FileDemo {
public static void main(String[] args) {
File file = new File("G:\\JavaProgram\\java\\src\\filetest6");
HashMap<String, Integer> hashMap = new HashMap<>();//存储统计结果的HashMap集合
stats(file, hashMap);
System.out.println(hashMap);
}
public static void stats(File src, HashMap<String, Integer> hashMap) {
File[] files = src.listFiles();
for (File file : files) {
if (file.isFile()) {
String[] arr = file.getName().split("\\.");//取文件后缀名
if (arr.length >= 2) {//判断后缀名正确性
String endName = arr[arr.length - 1];
if (hashMap.containsKey(endName)) {
int count = hashMap.get(endName);
count++;
hashMap.put(endName, count);
} else {
hashMap.put(endName, 1);
}
}
} else {
stats(file, hashMap);
}
}
}
}