File类是一个与流无关的类,File类的对象可以获取文件及其文件所在的目录、文件的长度等信息。
1. 构造方法
(1) File(String pathname)
File file1 = new File("H:\\test.txt");
(2) File(String pathname, String filename)
File file1 = new File("H:\\", "test.txt");
(3) File(File file, String filename)
File file1 = new File("H:\\filetest");
if(!file1.exsits()){
file1.mkdir();//如果文件夹filetest不存在,则新建文件夹filetest
}
File file2 = new File(file1, "test.txt");
2. 常用方法
方法名称 | 功能描述 |
---|---|
(1) exists() | 判断文件或文件夹是否存在 |
(2) createNewFile() | 创建一个新文件 |
(3) mkdir() | 创建文件夹,成功创建返回true |
(4) mkdirs() | 创建路径中包含的所有父文件夹和子文件夹,所有成功创建返回true |
(5) isFile() | 判断是不是文件类型 |
(6) isDirectory() | 判断是不是文件夹类型 |
(7) length() | 获取文件的长度 |
(8) getName() | 获取文件的名字 |
(9) getParent() | 获取文件的父路径字符串 |
(10) getPath() | 获取文件的相对路径字符串 |
(11) getAbsolutePath() | 获取文件的绝对路径字符串 |
(12) getCanonicalPath() | 获取文件的解析之后的规范路径字符串 |
3. 代码示例
package test;
import java.io.File;
import java.io.IOException;
public class Test {
public static void main(String[] args){
File file1 = new File("H:\\testFile");
File file2 = new File(file1, "test.txt");
File file3 = new File("..\\LeetCodehf\\test.txt");
System.out.println("文件夹file1是否存在:" + file1.exists());
//判断文件夹testFile是否存在,不存在则创建
if(!file1.exists()){
file1.mkdirs();
}
System.out.println("文件夹file1是否存在:" + file1.exists());
System.out.println("-------------------------------");
System.out.println("文件file2是否存在:" + file2.exists());
//判断文件test.txt是否存在,不存在则创建
try {
if(!file2.exists()){
file2.createNewFile();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("文件file2是否存在:" + file2.exists());
if(!file3.exists()){
try {
file3.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("-------------------------------");
System.out.println("file1是一个文件夹:" + file1.isDirectory());
System.out.println("file2是一个文件:" + file2.isFile());
System.out.println("file2的文件长度:" + file2.length());
System.out.println("file1的文件名字:" + file1.getName());
System.out.println("file2的父路径:" + file2.getParent());
System.out.println("-------------------------------");
System.out.println("file2的相对路径:" + file2.getPath());
System.out.println("file2的绝对路径:" + file2.getAbsolutePath());
try {
System.out.println("file2的规范路径:" + file2.getCanonicalPath());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("-------------------------------");
System.out.println("file3的相对路径:" + file3.getPath());
System.out.println("file3的绝对路径:" + file3.getAbsolutePath());
try {
System.out.println("file3的规范路径:" + file3.getCanonicalPath());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
运行结果如下图:
文件夹file1是否存在:true
文件夹file1是否存在:true
-------------------------------
文件file2是否存在:true
文件file2是否存在:true
-------------------------------
file1是一个文件夹:true
file2是一个文件:true
file2的文件长度:0
file1的文件名字:testFile
file2的父路径:H:\testFile
-------------------------------
file2的相对路径:H:\testFile\test.txt
file2的绝对路径:H:\testFile\test.txt
file2的规范路径:H:\testFile\test.txt
-------------------------------
file3的相对路径:..\LeetCodehf\test.txt
file3的绝对路径:H:\leetcodehf\LeetCodehf\..\LeetCodehf\test.txt
file3的规范路径:H:\leetcodehf\LeetCodehf\test.txt