一、File(文件类)概述
- File类和四大IO流没有关系,所以File类不能完成文件的读和写
- File对象代表文件和目录路径名的抽象表示形式,如C:\Program Files\Java\jdk1.8.0_131\bin,主要用于文件和目录的创建、文件的查找和文件的删除等,一个File对象有可能对应的是目录,也可能对应的是文件,所以File只是一个路径名的抽象表示形式
二、File类中的方法
1. 创建
- createNewFile()在指定位置创建一个空文件,成功就返回true,如果已存在就不创建,然后返回false
- mkdir() 在指定位置创建一个单级文件夹
- mkdirs() 在指定位置创建一个多级文件夹
- renameTo(File dest) 如果目标文件与源文件是在同一个路径下,那么renameTo的作用是重命名, 如果目标文件与源文件不是在同一个路径下,那么renameTo的作用就是剪切,且不能操作文件夹
2. 删除
- delete() 删除文件或者一个空文件夹,不能删除非空文件夹,马上删除文件,返回一个布尔值
- deleteOnExit() JVM 退出时删除文件或者文件夹,用于删除临时文件,无返回值
3. 判断
- exists() 文件或文件夹是否存在
- isFile() 是否是一个文件,如果不存在,则始终为false
- isDirectory() 是否是一个目录,如果不存在,则始终为false
- isHidden() 是否是一个隐藏的文件或是否是隐藏的目录
- isAbsolute() 测试此抽象路径名是否为绝对路径名
4. 获取
- getName() 获取文件或文件夹的名称,不包含上级路径
- getAbsolutePath() 获取文件的绝对路径,与文件是否存在没关系,返回的是定义时的路径对应的相对路径,但不会处理“.”和“…”的情况
- getCanonicalPath() 返回的是规范化的绝对路径,相当于将getAbsolutePath()中的“.”和“…”解析成对应的正确的路径
- length() 获取文件的大小(字节数),如果文件不存在则返回0L,如果是文件夹也返回0L
- getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null
- getPath() 将此抽象路径名转换为一个路径名字符串,返回的是定义时的路径
- lastModified() 获取最后一次被修改的时间
5. 文件夹相关
- static File[] listRoots() 列出所有的根目录(Window中就是所有系统的盘符)
- list() 返回目录下的文件或者目录名,包含隐藏文件,对于文件此操作会返回null(NullPointerException)
- listFiles() 返回目录下的文件或者目录对象(File类实例),包含隐藏文件,对于文件此操作会返回null(NullPointerException)
- list(FilenameFilter filter) 返回指定当前目录中符合过滤条件的子文件或子目录,对于文件此操作会返回null(NullPointerException)
- listFiles(FilenameFilter filter) 返回指定当前目录中符合过滤条件的子文件或子目录,对于文件这样操作会返回null(NullPointerException)
三、常用方法测试用例
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FileTest {
public static void main(String[] args) throws IOException {
File f1 = new File("D:\\file");
System.out.println(f1.exists());
File f2 = new File("D:\\m\\a\\y\\d\\a\\y");
File f3 = new File(".\\Java study\\自学整理笔记\\Java自学.md");
System.out.println(f3.getPath());
System.out.println(f3.getParent());
System.out.println(f3.getParentFile());
System.out.println(f3.getAbsolutePath());
System.out.println(f3.getCanonicalPath());
File f4 = new File("D:\\Linux study\\Linux基础终端控制器操作.md");
System.out.println(f4.getName());
System.out.println(f4.isDirectory());
System.out.println(f4.isFile());
Long l = f4.lastModified();
Date time = new Date(l);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
String str = sdf.format(time);
System.out.println(str);
System.out.println(f4.length());
File f5 = new File("D:\\MayDay");
File[] listFiles = f5.listFiles();
for (File file : listFiles) {
System.out.println(file.getName());
}
}
}