1.概述
(1). File类及相关的各种流,都定义在java.io包下.
(2). 一个File对象代表硬盘或网络中的一个文件或文件目录.与平台无关.
(3). File能新建,删除,重命名文件或目录.但不能访问文件本身.如果需要访问文件内容本身,需要使用输入输出流.
(4). 想要在java程序中表示一个真实存在的文件或目录,那么必须要有一个文件对象.但java中的一个文件对象,可能没有一个真实存在的文件或文件目录.
2.构造器
public File(String pathname) : 以pathname为路径创建File对象,可以是相对路径也可以是绝对路径
如果是相对路径,则默认的当前路径在系统属性user.dir中存储
public File(String parent, String child) : 以parent为父路径,child为子路径创建File对象
public File(File parent, String child) : 根据一个File对象和子文件路径创建File对象
关于路径 :
- 绝对路径 : 从盘符开始的路径,是一条完整的路径.
- 相对于项目目录的路径.这是一条便捷的路径.在IDEA中,main方法中文件的相对路径是相对于"当前工程Progect".而在单元测试中,其中文件的相对路径是相对于"当前模块Module".
2.常见方法
(1). 获取文件和目录的基本信息
例 :
@Test
public void Test1() {
File file = new File("C:\\Users\\hexua\\.vscode\\cli");//双斜杆避免转义
//public String getName() : 获取名称
System.out.println(file.getName());
//public String getPath() : 获取路径
System.out.println(file.getPath());
//public String getAbsolutePath() : 获取绝对路径
System.out.println(file.getAbsolutePath());
//public String getAbsoluteFile() : 获取绝对路径表示的文件
System.out.println(file.getAbsoluteFile());
//public String getParent : 获取上层文件目录的路径,若无,则返回null
System.out.println(file.getParent());
//public long length() : 获取文件长度,如果是目录,则获取目录下的所有文件的长度
System.out.println(file.length());
//public long lastModified() : 获取最后一次的修改时间的时间戳,单位应该是ms
System.out.println(file.lastModified());
}
控制台
cli
C:\Users\hexua\.vscode\cli
C:\Users\hexua\.vscode\cli
C:\Users\hexua\.vscode\cli
C:\Users\hexua\.vscode
8192
1702823509151
如果File对象代表的文件或目录存在,则File对象实例初始化时,就会用硬盘中对应的文件或文件目录的信息为File对象赋值.否则除了路径和名称外,其他属性都是默认值.
(2). File类的重命名功能
(3). 判断功能的方法
例 :
@Test
public void Test2() {
File file = new File("C:\\Users\\hexua\\Cloud");//双斜杆避免转义
//public boolean exits() : 此File表示的文件或目录是否实际存在
System.out.println(file.exists());
//public boolean isDirectory() : 此File表示的是否是目录
System.out.println(file.isDirectory());
//public boolean isFile() : 此File表示的是否是文件
System.out.println(file.isFile());
//public boolean canRead() : 判断是否可读
System.out.println(file.canRead());
//public boolean canWrite() : 判断是否可写
System.out.println(file.canWrite());
//public boolean isHidden() : 判断是否隐藏
System.out.println(file.isHidden());
}
控制台
true
true
false
true
true
false
(4). 创建,删除功能.