本文主要是介绍Java基础09-IO流-File类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
简介
1. 用来将文件或者文件夹封装成对象
2. 方便对文件与文件夹的属性信息进行操作
3. File对象可以作为参数传递给流的构造函数
4. 了解File类中的常用方法
File构造函数
package com.gaopeng.file;
import java.io.File;
public class Demo01 {
public static void main(String[] args) {
//可以将一个已存在,或为存在的文件或者文件夹封装成一个File对象
File file = new File("a.txt");
//路径与文件分开传递
new File("C:\\","a.txt");
//传递文件夹
File file1 = new File("C:\\");
//文件对象与文件传递参数
new File(file1,"a.txt");
//获取系统路径分隔符
File file2 = new File("C:" + File.separator + "a.txt");
System.out.println(file2);
}
}
File类的基本方法
- dir.delete(); 删除一个文件夹时,文件夹不为空不能删除
- file.createNewFile();新建一个文件时,如果文件存在,则不进行创建
- file.isFile();文件不存在时也返回false,所以在判断之前需要判断文件是否存在
- file.renameTO(file2);可以移动文件并重命名
- file.list();file必须是目录对象,如果是一个文件对象会空指针异常
- file.list(FileNameFilter filter);实现FileName Filter类重写accep方法,并实例化类,进行文件名过滤。本质过滤器获取所有文件名,进行判断,符合规则,则存入某个容器
- 图解:
打印一个目录中的所有文件(包含子目录中的文件)
- 思路
- file.listFiles();获取所有的文件对象
- 判断是文件还是目录
- 如果是目录,遍历目录进行判断(递归),如果是文件则打印输出
- Demo
package com.gaopeng.file;
import java.io.File;
public class Demo04 {
public static void main(String[] args) {
File file = new File("D:\\");
int level=0;
listAll(file,level);
}
private static void listAll(File file, int level) {
File[] files = file.listFiles();
level++;
for (File file1 : files) {
if (!file1.isHidden()) {
if(file1.isFile()){
System.out.println(getSpace(level)+file1.getName());
}
else if(file1.isDirectory()){
listAll(file1, level);
}
}
}
}
private static String getSpace(int level) {
StringBuilder str = new StringBuilder();
str.append("| ");
for (int i = 0; i < level; i++) {
str.append("|--");
}
return str.toString();
}
}
删除一个有内容的目录
- 需要进行深度遍历
- 删除所有文件
- 删除目录
这篇关于Java基础09-IO流-File类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!