1 File 类的使用
概述:在包java.io.File
下、代表操作系统的文件对象(文件、文件夹);
2 代码实践
2.1 文件对象获取
package cn.edu.njust.ioandfile;
import java.io.File;
public class FileDemo01 {
public static void main(String[] args) {
File file01 = new File("./src/main/resources/files/file01.txt");
System.out.println(file01.exists());
System.out.println(file01.getName());
System.out.println(file01.getPath());
System.out.println(file01.getAbsolutePath());
System.out.println(file01.length());
}
}
package cn.edu.njust.file;
import java.io.File;
public class Demo01 {
public static void main(String[] args) {
File file = new File("C:\\Users\\NJUST'er'wang's\\Pictures\\MyWallPaper\\02_WallPaper.jpg");
long size = file.length();
System.out.println(size);
File file1 = new File("day01/src/data.txt");
long size1 = file1.length();
System.out.println(size1);
}
}
2.2 创建和删除文件
package cn.edu.njust.ioandfile;
import java.io.File;
import java.io.IOException;
public class FileDemo02 {
public static void main(String[] args) throws IOException {
File file01 = new File("./src/main/resources/files/file02.txt");
System.out.println(file01.getCanonicalPath());
boolean newFile = file01.createNewFile();
if (newFile) System.out.println("创建文件成功!");
else System.out.println("创建文件失败!");
boolean isDelete = file01.delete();
if (isDelete) System.out.println("删除文件成功");
else System.out.println("删除文件失败");
}
}
2.3 获取文件列表
package cn.edu.njust.ioandfile;
import java.io.File;
import java.util.Arrays;
public class FileDemo03 {
public static void main(String[] args) {
File file01 = new File("./src/main/resources/files/");
System.out.println(file01.isDirectory());
String[] fileList = file01.list();
System.out.println(Arrays.toString(fileList));
File[] files = file01.listFiles();
System.out.println(Arrays.toString(files));
}
}
2.4 递归搜索文件
package cn.edu.njust.file;
import java.io.File;
public class Demo03 {
public static void main(String[] args) {
searchFile(new File("D:/"),"Season.java");
}
public static void searchFile(File dir,String fileName){
if (dir != null) {
File[] files = dir.listFiles();
if (files != null && files.length>0) {
for (File file: files) {
if (file.isFile()) {
if (file.getName().equals(fileName)) {
System.out.println("文件已找到");
System.out.println("路径为:" + file.getAbsolutePath());
return;
}
}else {
searchFile(file,fileName);
}
}
}
} else {
System.out.println("该文件为空");
}
}
}
3 常用方法汇总
3.1 构造器
方法名 | 说明 |
---|
public File(String pathname) | 根据文件路径创建文件对象 |
public File(String parent, String child) | 根据父路径名字符串和子路径名字符串创建文件对象 |
public File(File parent, String child) | 根据父路径对应文件对象和子路径名字符串创建文件对象 |
3.2 常用 API
方法名 | 说明 |
---|
public boolean isDirectory() | 判断此路径名表示的File是否为文件夹 |
public boolean isFile() | 判断此路径名表示的File是否为文件 |
public boolean exists() | 判断此路径名表示的File是否存在 |
public long length() | 返回文件的大小(字节数量) |
public String getAbsolutePath() | 返回文件的绝对路径 |
public String getPath() | 返回定义文件时使用的路径 |
public String getName() | 返回文件的名称,带后缀 |
public long lastModified() | 返回文件的最后修改时间(时间毫秒值) |
3.3 删除与创建
方法名称 | 说明 |
---|
public boolean createNewFile() | 创建一个新的空的文件 |
public boolean mkdir() | 只能创建一级文件夹 |
public boolean mkdirs() | 可以创建多级文件夹 |
public boolean delete() | 删除由此抽象路径名表示的文件或空文件夹 |
3.4 获取并遍历的方法
方法名称 | 说明 |
---|
public String[] list() | 获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。 |
public File[] listFiles()(常用) | 获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点) |