File
File类的对象代表操作系统的文件,File封装了对文件进行:删除、获取信息、创建文件\文件夹等操作。
创建File对象,支持绝对路径和相对路径,可以是文件夹也可以是文件
File f = new File("文件绝对路径"); //从盘符开始
File f1 = new File("模块名/xxx"); //相对路径
File常用api
isDirectory()判断此路径名表示的File是否为文件夹
isFile()判断此路径名表示的File是否为文件
exists()判断此路径名表示的File是否存在
length()返回文件的大小(字节数量)
getAbsolutePath()返回文件的绝对路径
getPath()返回定义文件时使用的路径
getName()返回文件的名称,带后缀
lastModified()返回文件的最后修改时间(时间毫秒值)
package com.ieheima.test;
import java.io.File;
public class FileDemo2 {
public static void main(String[] args) {
File f = new File("D:\\resource\\aaa");
//isDirectory()判断此路径名表示的File是否为文件夹
System.out.println(f.isDirectory()); //true
//isFile()判断此路径名表示的File是否为文件
System.out.println(f.isFile()); //false
//exists()判断此路径名表示的File是否存在
System.out.println(f.exists()); //true
//length()返回文件的大小(字节数量)
System.out.println(f.length()); //0
//getAbsolutePath()返回文件的绝对路径
System.out.println(f.getAbsoluteFile()); //D:\resource\aaa
//getPath()返回定义文件时使用的路径
System.out.println(f.getPath()); //D:\resource\aaa
//getName()返回文件的名称,带后缀
System.out.println(f.getPath()); //D:\resource\aaa
//lastModified()返回文件的最后修改时间(时间毫秒值)
System.out.println(f.lastModified()); //1678840913361
//格式化后输出时间
System.out.println(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(f.lastModified())); //2023/03/15 08:41:53
}
}
File类创建文件和删除文件
createNewFile()创建一个新的空的文件
mkdir()只能创建一级文件夹
mkdirs()可以创建多级文件夹
delete方法默认只能删除文件和空文件夹,delete方法直接删除不走回收站
delete()删除由此抽象路径名表示的文件或空文件夹
package com.ieheima.test;
import java.io.File;
import java.io.IOException;
public class FileDemo3 {
public static void main(String[] args) {
//createNewFile 创建一个文件
File f = new File("file-app\\src\\data1.txt");
try {
System.out.println(f.createNewFile()); //true
} catch (IOException e) {
throw new RuntimeException(e);
}
//创建一个一级目录
File f2 = new File("D:/resource/ccc");
System.out.println(f2.mkdir()); //true
//创建一个一级目录
File f3 = new File("D:/resource/ddd/aa/bb");
System.out.println(f3.mkdirs()); //true
}
}
File类的遍历功能
list()获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回
listFiles()(常用)获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点)
package com.ieheima.test;
import java.io.File;
import java.util.Arrays;
public class FileDemo4 {
public static void main(String[] args) {
File f = new File("D:\\resource");
System.out.println(Arrays.toString(f.list())); //[aaa, bbb, ccc, ddd, QQ图片20230313215113.jpg, TP6hatccess.txt, 笔记]
System.out.println(Arrays.toString(f.listFiles())); //[D:\resource\aaa, D:\resource\bbb, D:\resource\ccc, D:\resource\ddd, D:\resource\QQ图片20230313215113.jpg, D:\resource\TP6hatccess.txt, D:\resource\笔记]
}
}
方法递归
方法调用自己的形式称为方法递归
package com.ieheima.test;
public class FileDemo5 {
public static void main(String[] args) {
//递归就1-n的阶乘
System.out.println(f(5)); //120
//求1-n的和
System.out.println(f1(5)); //15
}
public static int f(int n){
if(n==1){
return 1;
}else{
return f(n-1)+n;
}
}
public static i nt f1(int n){
if(n==1){
return 1;
}else{
return f(n-1)+n;
}
}
}