File类的使用
概念:代表物理盘符中的一个文件或者文件夹

小案例:
package com.iopractise;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.Date;
/**
* File类的使用
* 1.分隔符
* 2.文件操作
* 3.文件夹操作
*/
public class Demo19 {
public static void main(String[] args) throws Exception {
// separator();
// fileOper();
directoryOpe();
}
// 1. 分隔符
public static void separator() {
System.out.println("路径分隔符" + File.pathSeparator);
System.out.println("名称分隔符" + File.separator);
}
public static void fileOper() throws IOException {
// 1. 创建文件
File file = new File("file.txt");
if (!file.exists()) { // 是否存在
boolean b = file.createNewFile();
System.out.println("创建结果:" + b);
}
// 2. 删除文件
// 2.1 直接删除
boolean deleteFlag = file.delete();// 成功true
System.out.println("文件删除是否成功:" + deleteFlag);
// 2.2 使用jvm退出时删除
file.deleteOnExit();//这个方法最后是没有返回值的
// 3. 获取文件信息
System.out.println("获取绝对路径" + file.getAbsolutePath());
System.out.println("获取路径" + file.getPath());//该方法获取的是文件的相对路径
System.out.println("获取文件名称" + file.getName());
System.out.println("获取夫目录" + file.getParent());
System.out.println("获取文件长度" + file.length());
System.out.println("文件创建时间" + new Date(file.lastModified()).toLocaleString());
// 4. 判断
System.out.println("是否可写" + file.canWrite());
System.out.println("是否是文件" + file.isFile());
System.out.println("是否隐藏" + file.isHidden());
}
// 文件夹操作
public static void directoryOpe() throws Exception{
// 1. 创建文件夹
File dir = new File("d:\\aaa\\bbb\\ccc");
System.out.println("文件目录:"+dir.toString());
if(!dir.exists()){
//dir.mkdir(); // 只能创建单级目录
dir.mkdirs(); // 创建多级目录
}
// 2. 删除文件夹
// 2.1 直接删除
boolean deleteFlag = dir.delete();// 只能删除最底层空目录
System.out.println("文件夹是否删除成功:"+deleteFlag);//这里只会删除ccc这层目录,如果ccc目录下还有其他文件,这个时候,ccc目录是不会删除的。
// 2.2 使用jvm删除
dir.deleteOnExit();
// 3. 获取文件夹信息
System.out.println("获取绝对路径" + dir.getAbsolutePath());
System.out.println("获取路径" + dir.getPath());//File(文件的路径),该方法返回的是括号中的文件路径
System.out.println("获取文件名称" + dir.getName());
System.out.println("获取父目录" + dir.getParent());
System.out.println("获取文件长度" + dir.length());
System.out.println("文件夹创建时间" + new Date(dir.lastModified()).toLocaleString());
// 4. 判断
System.out.println("是否是文件夹" + dir.isDirectory());
System.out.println("是否隐藏" + dir.isHidden());
// 5. 遍历文件夹
File dir2 = new File("D:\\图纸");
String[] files = dir2.list();
for(String string : files){
System.out.println(string);
}
System.out.println("================FileFilter接口的使用==================");
// FileFilter接口的使用
File[] files2 = dir2.listFiles(new FileFilter(){
public boolean accept(File pathname){
if(pathname.getName().endsWith(".xmind")){
return true;
}
return false;
}
});
for(File file : files2){
System.out.println(file.getName());
}
}
}
注意:File.length()方法获取的是文件的大小。(通俗的讲)
FileFilter接口
Public interface FileFilter
.boolean accept(File pathname)
.当调用File类中listFiles()方法的时候,支持传入FileFilter接口接口实现类,对获取文件进行过滤,只有满足条件的文件的才可以出现在listFiles()的返回值中。
浙公网安备 33010602011771号