File
一. 概述:
它是文件和目录路径名的抽象表示
构造方法
-File(String pathName)
-File(String parent, String child)
-File(File parent, String child)
File file = new File("E://java//t.txt");
System.out.println(file);
File file1 = new File("E://java","t.txt");
System.out.println(file1);
File file2 = new File("E://java");
File file3 = new File(file2,"t.txt");
System.out.println(file3);
-creatNewFile() 文件不存在时帮你创建一个
-mkdir() 创建目录
-mkdirs() 创建多级目录
以上,如果不存在才创建,如果已经存在就不再创建,返回false
/需求1:我要在目录下创建一个文件java.txt
File file = new File("/Users/home/desktop/java.txt");
System.out.println(file.createNewFile());
System.out.println("--------");
//需求2:我要在目录下创建一个目录JavaSE
File file1 = new File("/Users/home/desktop/javaSE");
System.out.println(file1.mkdir());
//需求3:我要在目录下创建一个多级目录JavaWEB/HTML
File file2 = new File("/Users/home/desktop/JavaWEB/HTML");
System.out.println(file2.mkdirs());
-isDirectory() 是否是目录
-isFile() 是否是文件
-exists() 是否存在
-getAbsolutePath() 获取绝对路径
-getPath() 获取路径字符串
-getName() 目录名称
-list() String[] 目录下所有文件和文件夹的名称,组成的数组
-listFiles() File[]
File file = new File("/Users/thor/desktop");
System.out.println(file.isDirectory()); // true
System.out.println(file.isFile()); // false
System.out.println(file.exists()); // true
System.out.println(file.getAbsolutePath()); // /Users/thor/desktop
System.out.println(file.getPath()); // /Users/thor/desktop
System.out.println(file.getName()); // desktop
String[] list = file.list();
for (String s: list) {
System.out.println(s);
}
File[] files = file.listFiles(); // 返回每个file
for (File fe: files) {
System.out.println(fe.getName()); // 打印目录名称
}
-delete() 删除 既可以删文件,还可以删目录
如果要删除的目录下还有文件,必须先删除文件,才能删除目录
File file = new File("/Users/thor/desktop/java");
System.out.println(file.delete());
二. 递归
public class DiGuiDemo {
public static void main(String[] args) {
//回顾不死神兔问题,求第20个月兔子的对数
//每个月的兔子对数:1,1,2,3,5,8,...
int[] arr = new int[20];
arr[0] = 1;
arr[1] = 1;
for (int i = 2; i < arr.length; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
System.out.println(arr[19]);
System.out.println(f(20));
}
public static int f(int n){
if (n == 1 || n == 2){
return 1;
} else {
return f(n - 1) + f(n - 2);
}
}
}
三. 案例
遍历一个目录下,所有的内容
allFile(file);
public static void allFile(File file) {
File[] files = file.listFiles();
if (files != null){
for (File fl: files) {
if (fl.isDirectory()){
allFile(fl);
} else {
System.out.println(fl.getAbsolutePath());
}
}
}
}