File 可以代表文件或者目录,还可以查看文件的特性或者进行修改、删除操作,特此记录和大家一次分享。
1.文件是否存在
- exists() 可判断文件是否存在
public static void main(String[] args) throws IOException {
File file = new File("123.txt");
System.out.println("文件是否存在:" + file.exists());
}
文件是否存在:true
2.创建文件
- createNewFile(String pathName) 可创建空文件, pathName 为文件路径
public static void main(String[] args) throws IOException {
File file = new File("abc.txt");
//判断文件是否存在
if (!file.exists()) {
System.out.println("文件是否存在:" + file.exists());
//不存在则创建文件
file.createNewFile();
}
System.out.println("文件是否存在:" + file.exists());
}
文件是否存在:false
文件是否存在:true
3.创建文件夹
- mkdir() 创建单级目录
- mkdirs() 创建多级目录
public static void main(String[] args) throws IOException {
File firstDir = new File("firstDir");
System.out.println("文件是否存在:" + firstDir.exists());
firstDir.mkdir();
System.out.println("文件是否存在:" + firstDir.exists());
File secondDir = new File("firstDir/secondDir/file");
System.out.println("文件是否存在:" + secondDir.exists());
secondDir.mkdirs();
System.out.println("文件是否存在:" + secondDir.exists());
}
文件是否存在:false
文件是否存在:true
文件是否存在:false
文件是否存在:true
4.获取文件名和文件路径
-
getName() 获取文件名
-
getPath() 获取构造 File 类时传入的参数 pathName
-
getAbsolutePath() 获取当前目录 + getPath() 返回的值
-
getCanonicalPath() 获取文件绝对路径
public static void main(String[] args) throws IOException {
File file = new File("./firstDir/secondDir/file/abc.txt");
file.createNewFile();
System.out.println(file.getName());
System.out.println(file.getPath());
System.out.println(file.getAbsolutePath());
System.out.println(file.getCanonicalPath());
}
abc.txt
.\firstDir\secondDir\file\abc.txt
E:\workSpace\thinkingInJava\.\firstDir\secondDir\file\abc.txt
E:\workSpace\thinkingInJava\firstDir\secondDir\file\abc.txt
5.文件重命名
- renameTo(File dest) 可以将文件重命名,dest 为目标 File
public static void main(String[] args) throws IOException {
File oldFile = new File("abc.txt");
oldFile.createNewFile();
File newFile = new File("123.txt");
System.out.println(newFile.exists());
oldFile.renameTo(newFile);
System.out.println(newFile.exists());
System.out.println(oldFile.exists());
}
false
true
false
7.删除文件
- delete() 可用于删除文件或者目录
public static void main(String[] args) throws IOException {
File file = new File("abc.txt");
file.createNewFile();
System.out.println(file.exists());
file.delete();
System.out.println(file.exists());
}
true
false
8.文件大小
- length() 返回文件大小,返回单位为:字节
public static void main(String[] args) throws IOException {
File file = new File("E:/workSpace/spring.dataSoucrce.zip");
System.out.println(file.length()/1024.0+"KB");
}
53.7294921875KB
9.最后修改日期
- lastModified() 获取文件的最后修改日期,返回值为毫秒数
public static void main(String[] args) throws IOException {
File file = new File("E:/workSpace/spring.dataSoucrce.zip");
System.out.println(file.lastModified());
}
1561263030656
10.判断目录
- isDirectory() 判断文件是否为目录
public static void main(String[] args) throws IOException {
File file = new File("E:/workSpace/spring.dataSoucrce.zip");
System.out.println(file.isDirectory());
file = new File("E:/workSpace/");
System.out.println(file.isDirectory());
}
false
true
11.获取目录内文件列表
- listFiles() 可将当前目录下的文件当作 File 数组返回
public static void main(String[] args) throws IOException {
File file = new File("E:/workSpace/");
File[] files = file.listFiles();
for (File f : files) {
System.out.println(f.getName());
}
}
.idea
geektime-spring-family
geektime-vue-1-master
geektime-vue-1-master.zip
geektime-zero
git
HBN
leetcode
- listFiles(FilenameFilter filter) 拥有重载方法,传入 FilenameFilter 的实现类,可对文件列表进行过滤;
public static void main(String[] args) throws IOException {
File file = new File("E:/workSpace/");
File[] javas = file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
if (name.indexOf("zip") > -1) return true;
return false;
}
});
for (File java : javas) {
System.out.println(java);
}
}
E:\workSpace\geektime-vue-1-master.zip
E:\workSpace\mybatis-plus-demo.zip
E:\workSpace\spring.dataSoucrce.zip
12.判断文件可否读写
- canRead() 判断文件是否可读
- canWrite() 判断文件是否可写
public static void main(String[] args) throws IOException {
File file = new File("E:/workSpace/");
System.out.println(file.canRead());
System.out.println(file.canWrite());
}
true
true
本次分享至此结束,希望本文对你有所帮助,若能点亮下方的点赞按钮,在下感激不尽,谢谢您的【精神支持】。
若有任何疑问,也欢迎与我交流,若存在不足之处,也欢迎各位指正!