- 一、File类
- 1 new File对象
- 1.1 new 目录的File对象
- 1.2 new 文件的File对象
- 2 判断目录或文件是否存在
- 3 创建目录
- 3.1 创建单层目录
- 3.2 创建多层目录
- 4 创建文件
- 5 获取目录或文件的属性
- 6 遍历目录
- 6.1 遍历某目录下的目录和文件的Name
- 6.2 遍历某目录下的目录和文件的File对象
- 6.3 根据过滤条件遍历某目录
- 7 删除目录或文件
Java中的File类是很常用的,它可以表示文件也可以表示文件夹(目录)。
1 new File对象 1.1 new 目录的File对象//相对路径
String dirPath = "src/main/resources/fileio";
File dir = new File(dirPath);
//绝对路径
String dirAbsolutePath = "D:\project\my-project\json\src\main\resources\fileio2";
File dir2 = new File(dirAbsolutePath);
1.2 new 文件的File对象
//相对路径
String dirPath = "src/main/resources/fileio2/test.txt";
File file = new File(dirPath);
//绝对路径
String dirPath = "D:\project\my-project\json\src\main\resources\fileio2\test2.txt";
File file = new File(dirPath);
2 判断目录或文件是否存在
//相对路径
String dirPath = "src/main/resources/fileio";
File dir = new File(dirPath);
if (dir.exists()) {
System.out.println("存在");
} else {
System.out.println("不存在");
}
3 创建目录
mkdir()和mkdirs()都可以创建目录,但是场景不同
3.1 创建单层目录String dirPath = "src/main/resources/fileio3";
File dir = new File(dirPath);
if (!dir.exists()) {
dir.mkdir();
}
3.2 创建多层目录
String dirPath = "src/main/resources/fileio2/dir1/dir2/dir3/dir4";
File dir = new File(dirPath);
if (!dir.exists()) {
dir.mkdirs();
}
4 创建文件
createNewFile()是创建指定的文件
String filePath = "src/main/resources/fileio2/test.txt";
File file = new File(filePath);
if (!file.exists()) {
if (file.createNewFile()){
System.out.println("创建成功 = " + file.exists());
}
}
5 获取目录或文件的属性
//判断File对象是否为文件?
System.out.println("dir.isFile() = " + dir.isFile());
//判断File对象是否为目录?
System.out.println("dir.isDirectory() = " + dir.isDirectory());
//判断是否是绝对路径
System.out.println("dir.isAbsolute() = " + dir.isAbsolute());
//构造参数pathname
System.out.println("dir.getPath() = " + dir.getPath());
//获取绝对路径
System.out.println("dir.getAbsolutePath() = " + dir.getAbsolutePath());
System.out.println("dir.getAbsoluteFile() = " + dir.getAbsoluteFile());
//标准规范绝对路径
System.out.println("dir.getCanonicalPath() = " + dir.getCanonicalPath());
//获取目录名或者文件名
System.out.println("dir.getName() = " + dir.getName());
//获取父目录
System.out.println("dir.getParent() = " + dir.getParent());
6 遍历目录
6.1 遍历某目录下的目录和文件的Name
String dirPath = "src/main/resources/fileio2";
File dir = new File(dirPath);
String[] list = dir.list();
Stream.of(list).forEach(s -> {
System.out.println(s);
});
6.2 遍历某目录下的目录和文件的File对象
File[] listFiles = dir.listFiles();
Stream.of(listFiles).forEach(s -> {
System.out.println(s.getName());
});
6.3 根据过滤条件遍历某目录
FileFilter fileFilter = new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.isDirectory();
}
};
File[] files = dir.listFiles(fileFilter);
Stream.of(files).forEach(s -> System.out.println(s.getName()));
7 删除目录或文件
被删除的目录下面不能有目录或者文件
String dirPath = "src/main/resources/fileio";
File dir = new File(dirPath);
//如果目录或者文件存在,删除成功返回true,如果不存在,则返回false
dir.delete();
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)