java File类
程序员文章站
2022-06-16 21:22:58
...
File类:java.io包下代表与平台无关的文件和目录,换个说法:使用File类可以在程序中操作文件和目录
- 学习javaIO流的先行工具。
- File类通俗讲也是一个类,所欲我们需要了解这个类的子类以及方法等等。
方法 | 返回值 | 说明 |
---|---|---|
String getName() | String | 返回file对象对应的文件名或者最后一级路径名 |
String getPath() | String | 返回File对象对应的路径名 |
File getAbsoluteFile() | File | 返回file对象所对应的绝对路径名 |
String getAbsolutePath() | String | 返回file对象所对应的绝对路径名 |
String getPrarent() | String | 返回file对象所对应的目录(最后一级子目录)的父目录名 |
boolean renameTo(File dest) | boolean | 重新命名此抽象路径名表示的文件。 |
boolean exists() | boolean | 测试此抽象路径名表示的文件或目录是否存在。 |
boolean canRead() | boolean | 测试应用程序是否可以读取此抽象路径名表示的文件。 |
boolean canWrite() | boolean | 测试应用程序是否可以修改此抽象路径名表示的文件。 |
boolean isFile() | boolean | 且仅当此抽象路径名表示的文件存在且 是一个标准文件时,返回 true;否则返回 false |
boolean isDirectory() | boolean | 测试此抽象路径名表示的文件是否是一个目录。 |
boolean isAbsolute() | boolean | 判断File对象对应的文件或者目录是否是一个绝对路径。 |
long lastModified() | long | 返回此抽象路径名表示的文件最后一次被修改的时间 |
long length() | long | 返回由此抽象路径名表示的文件的长度。 |
boolean createNewFile() | boolean | 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。 |
boolean delete() | boolean | 删除此抽象路径名表示的文件或目录。 |
static File createNewTempFile(String prefix,String suffix) | File | 在默认临时文件目录中创建一个临时的空文件 |
static File createNewTempFile(String prefix,String suffix,File directory) | File | 在给定的目录中创建一个临时文件 |
void deleteOnExit() | 当jvm退出时,删除File对象所对应的文件和目录 | |
boolean mkdir() | boolean | 创建此抽象路径名指定的目录。 |
boolean mkdirs() | boolean | 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。 |
String[] list() | String[] | 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。 |
File[] listFiles() | File[] | 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 |
static File[] listRoots() | File[] | 列出系统所有的根路径 |
简单知识点
- 相对路径:windows不带盘符的路径
- 绝对路径: windows下d带盘符的路径/linux下开头是(/)的路径
- windows下路径分割符使用反斜线,java反斜线表示转义字符,所以需要在windows的路径下包括反斜线,则应该使用\\。也可以使用/,java支持将/当成与平台无关的路径分隔符。
文件过滤器
- file类的list可以接受一个FilenameFilter参数通过参数可以只列出符合条件的文件
- filenameFilter接口里包含了一个accept(file dir,String name)方法,该方法将依次对指定的File的所有子目录或者文件进行迭代,如果方法返回true,则list()方法会列出子目录或者文件。
实例1:
public class FilenameFilterTest {
public static void main(String[] args) {
File file = new File("D:\\java代码");
//lambad实现文件过滤器
//返回以java文件扩展名结尾的文件名
String[] list = file.list((dir, name) -> name.endsWith(".java"));
for (String name :list){
System.out.println("java文件有:"+name);
}
}
}
实例2:
package banban.study13.IO.File;
import java.io.File;
import java.io.FilenameFilter;
/**
* @ClassName FilenameFilterTest1
* @Author zhang-peng-zhan
* @Date 2018/11/6 19:18
*/
public class FilenameFilterTest1 {
public static void main(String[] args) {
//需求:判断D盘指定目录下是否有后缀名.jpg的文件,如果有,就输出该文件名称
File file = new File("E:\\Java图片视频");
File[] file1 = file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return new File(dir,name).isDirectory()&&name.endsWith(".png");
}
//public boolean accept(File dir, String name) {
// 封装指定的文件为一个File对象
// File file = new File(dir , name) ;
//
// System.out.println(file);
// boolean flag = file.isFile() && file.getName().endsWith(".png") ;
// 后缀名为.jpg的文件
// System.out.println(dir + "----" + name);
// return new File(dir, name).isFile() && name.endsWith(".png") ;
// }
});
for (File f : file1){
System.out.println(f.getName());
}
}
}
下一篇: PHP中鲜为人知的10个函数