java File,FileFilter
2019-01-25 本文已影响1701人
会摄影的程序员
1. File类;
文件和目录路径名的抽象表示
1.1 构造
-
File(String filepath);
直接写路径 -
File(String parent, String path);
parent 父路径
path 子路径 -
File(File parent,String path)
parent 先构造一个File
path 这个File下面的路径
1.2 获取方法
- String getAbsoluteFile();
返回绝对路径 - String getName();
返回文件或目录名 - String getPath();
返回路径 - Long length();
返回文件长度
只能获取文件的,不能获取文件夹的
demo:
public static void readPath(){
File file = new File("fileTest.txt");
File file2 = new File("C:\\Users\\81022\\Desktop","无标题.png");
String fileAbsPath = file.getAbsolutePath();
String fileName = file.getName();
String filePath = file.getPath();
Long fileLenght = file.length();
System.out.println(fileAbsPath);
System.out.println(fileName);
System.out.println(filePath);
System.out.println(fileLenght);
}
1.3 File对象的删除和创建方法
1.3.1 创建方法
-
创建文件
boolean createNewFile()
//创建一个文件(只能是文件,不能是文件夹)
//如果存在则不会创建 -
创建文件夹
boolean mkdir();
//只能创建文件夹
//如果存在则不会创建
demo:
public void newFileDemo() throws IOException {
File file = new File("C:\\Users\\81022\\Desktop\\111.txt");
System.out.println(file);
boolean b1 = file.createNewFile();
System.out.println(b1);
}
public void mkdirDemo(){
File file = new File("C:\\Users\\81022\\Desktop\\111");
boolean b1 = file.mkdirs();
System.out.println(b1);
}
1.3.2 判断方法
- 判断是否是文件
boolean isFile(); - 判断是否是文件夹
boolean isDirectory(); - 判断文件或者文件夹是否存在
boolean exist();
1.3.3 删除方法
boolean delete();
只能删除当文件,或空文件夹
1.4 其他方法
- String [] list();
仅返回文件的文件名数组 - File[] listFiles();
返回文件数组
demo:
public void listDemo(){
File file = new File("C:\\Users\\81022\\Downloads");
//list 方法
String[] fileList = file.list();
for (String stirng : fileList) {
System.out.println(stirng);
}
//listFiles
File[] filesList = file.listFiles();
for (File file1 : filesList) {
System.out.println(file1.getAbsolutePath());
}
}
删除某个目录下面全部文件demo:
public class DeleteDemo {
public static void main(String[] args){
File file = new File("C:\\Users\\81022\\Downloads\\deleteTest");
//先判断路径是否存在
if (!isPath(file)){
System.out.println("路径不存在!");
}else {
boolean result = deleteTest(file);
if (result){
System.out.println("删除成功!");
}else {
System.out.println("删除失败!");
}
}
}
public static boolean isPath(File file){
return file.exists();
}
public static boolean deleteTest(File file){
//如果是文件直接删除
if (file.isFile()){
return file.delete();
}
//如果不是文件
//先删除 从而判断是否为空文件夹
if (file.delete()){
return true;
}
//删除不成功那么说明为非空文件夹
File[] fileList = file.listFiles();
for (File file1 : fileList) {
deleteTest(file1);
file1.delete();
}
return true;
}
}
2 文件过滤器
public class FileFilterDemo {
public static void main(String[] args){
String endString = ".txt";
File file = new File("C:\\Users\\81022\\Downloads\\deleteTest");
FileFilter fileFilter = new FileFilter() {
@Override
public boolean accept(File pathname) {
if (pathname.getName().endsWith(endString)){
return true;
}
return false;
}
};
File[] fileArray = file.listFiles(fileFilter);
for (File file1 : fileArray) {
System.out.println(file1.getName());
}
}
}