File
File类介绍
- 它是文件和目录路径名的抽象表示
- 可以将文件和目录的路径名封装为File类的对象
File类的构造方法
方法名 | 说明 |
---|
File(String pathname) | 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例 |
File(String parent, String child) | 从父路径名字符串和子路径名字符串创建新的File实例 |
File(File parent, String child) | 从父路径名封装成的File对象和子路径名字符串创建新的File实例 |
常用方法
方法名 | 说明 |
---|
public boolean delete() | 删除由此File对象表示的文件或目录 |
public boolean isDirectory() | 测试此File对象表示的File是否为目录 |
public boolean isFile() | 测试此File对象表示的File是否为文件 |
public boolean exists() | 测试此File对象表示的File是否存在 |
public String getAbsolutePath() | 返回此File对象的绝对路径名字符串 |
public String getPath() | 将此File对象转换为路径名字符串 |
public String getName() | 返回由此File对象表示的文件或目录的名称 |
public File[] listFiles() | 返回此File对象表示的目录中的文件和目录的File对象数组 |
示例
在当前模块下的aaa文件夹中创建一个a.txt文件
package eicoma.com.github.file.practice;
import java.io.File;
import java.io.IOException;
public class FileDemo1 {
public static void main(String[] args) throws IOException {
File file = new File("file-practice\\aaa");
if(!file.exists()){
file.mkdirs();
}
File newFile = new File(file,"a.txt");
newFile.createNewFile();
}
}
删除一个多级文件夹
import java.io.File;
public class FileDemo2 {
public static void main(String[] args) {
File fileOrigin = new File("C:\\Users\\32808\\Desktop\\src");
deleteFiles(fileOrigin);
}
public static void deleteFiles(File fileOrigin){
File[] fileArray= fileOrigin.listFiles();
for (File file : fileArray){
if (file.isFile()){
file.delete();
}else {
deleteFiles(file);
}
}
fileOrigin.delete();
}
}
统计一个文件夹中每种文件的个数并打印
import java.io.File;
import java.util.HashMap;
import java.util.Map;
public class FileDemo3 {
public static void main(String[] args) {
Map<String,Integer> map = new HashMap<>();
File files = new File("file-practice");
getCounts(map,files);
System.out.println(map);
}
private static void getCounts(Map<String, Integer> map, File files) {
File[] fileArray = files.listFiles();
for (File file : fileArray){
if(file.isFile()){
String fileName = file.getName();
String[] nameArray = fileName.split("\\.");
String endName = nameArray[1];
Integer count = map.get(endName);
if(map.get(endName) != null){
count++;
map.put(endName,count);
}else{
map.put(endName,1);
}
}else{
getCounts(map,file);
}
}
}
}