File
创建对象
File file = new File("d:\\test.txt"); //创建对象
特点
- 有参
- 参数类型为String,内容为路径,因为路径“\”需要转义,所以加上转义字符“\”,即双“反斜杠”
操控文件
实例
import java.io.File;
import java.io.IOException;
public class Test01 {
public static void main(String[] args) throws IOException {
File file = new File("d:\\test.txt"); //创建对象
if (!file.exists()){ //判断文件是否存在
file.createNewFile(); //创建文件
}
System.out.println(file.isHidden()); //文件是否隐藏属性
System.out.println(file.canRead()); //文件是否可读
System.out.println(file.canWrite()); //文件是否可写
System.out.println(file.getName()); //获取文件
file.delete(); //删除文件
}
}
操控文件夹
import java.io.File;
import java.io.IOException;
public class Test01 {
public static void main(String[] args) throws IOException {
File file = new File("d:\\test\\a"); //创建对象
if (!file.exists()){
file.mkdirs(); //创建多级目录,mkdir()创建单级目录
}
File[] files = file.listFiles(); //输出文件夹下所有文档和目录并保存在数组
for (File f:files) { //遍历文件夹所有文件名
System.out.println(f.getName());
}
}
}
可以看到,我们遍历的时候,文档可以被遍历,但是遇到文件夹并没有深层遍历,这时我们需要调用 isDirectory() 方法判断是否为目录,若是,则使用同样方法进入目录遍历所有文档和目录
绝对路径和相对路径
import java.io.File;
import java.io.IOException;
public class Test01 {
public static void main(String[] args) throws IOException {
File file = new File("test1.txt"); //创建对象
file.createNewFile();
System.out.println(file.getAbsolutePath()); //获得绝对路径
System.out.println(file.getPath());; //获得相对路径
}
}
- 绝对路径也叫精准路径,输出文件精准路径
- 相对路径是指相对当前项目(此例是MyIO项目)路径
综合应用 递归遍历文件夹
import java.io.File;
import java.io.IOException;
public class Test01 {
public static void main(String[] args) throws IOException {
File file = new File("d:\\test\\a"); //创建对象
fun(file,1); //level为目录级层,初始为
}
static void fun(File file,int Level) {
File[] files = file.listFiles(); //输出文件夹下所有文件和目录并保存在数组
for (File f : files) { //遍历文件夹所有文件名
for (int i = 0; i < Level; i++) { //打印层级标识
System.out.print("-");
}
System.out.println(f.getName()); //打印文件名
if (f.isDirectory()) { //递归深入遍历目录
fun(f,Level+1);
}
}
}
}