一:File类初识
- Java中的File类用于文件和目录路径名的抽象表示形式。
- 程序代码和文件目录的关系:主要就是对文件和目录进行增删改查,俗称CRUD
- File类的包名是java.io,实现了Serializable, Comparable两大接口以便于其对象可序列化和比较
- 技巧:File.separator 目录分隔符,在不同的系统下不一样, windows和 mac /Linux
- File类能新建、删除、重命名文件和目录,但File类不能用于读取或写入文件内容。
- 如果需要读取文件内容,请使用FileReader、BufferedReader等类;
- 如果需要写入文件内容,请使用FileWriter、BufferedWriter或PrintWriter等类。
二:File类的常用构造方法
- File(String pathname):通过给定的路径名字符串(可以是相对路径或绝对路径)构造File对象。
- File(String parent, String child):从父路径名字符串和子路径名字符串构造File对象。
三:File类的常用方法
- 获取文件/目录信息
- getName():返回由路径名表示的文件或目录的名称。
- getPath():将此路径名转换为一个路径名字符串。
- getAbsolutePath():返回路径名的绝对路径名字符串。
- isDirectory():测试路径名表示的文件是否是一个目录。
- isFile():测试路径名表示的文件是否是一个普通文件。
- exists():测试路径名表示的文件或目录是否存在。
- length():返回路径名表示的文件的长度(以字节为单位)。
- 创建文件/目录
- createNewFile():当且仅当具有指定名称的文件尚不存在时,创建一个新的空文件。
- mkdir():创建路径名指定的目录。
- mkdirs():创建路径名指定的目录,包括所有必需但不存在的父目录。
- 删除文件/目录
- 列出目录内容
- list():返回一个字符串数组,这些字符串表示此抽象路径名表示的目录中的文件和目录。
- listFiles():返回一个File数组,这些文件和目录路径名表示此抽象路径名表示的目录中的文件和目录。
四:代码示例
package chapter10;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
public class FileApiDemo {
public static void main(String[] args) throws IOException {
String dir = "/Users/mz/IdeaProjects/xdclass-count/src/chapter10";
String name = "abc.txt";
File file = new File(dir,name);
System.out.println("基本路径 getPath()= " + file.getPath());
System.out.println("文件名 getName()= " + file.getName());
System.out.println("绝对路径 getAbsolutePath = " + file.getAbsolutePath());
System.out.println("父路径名 getParent() = " + file.getParent());
System.out.println("是否是绝对路径 isAbsolute() = " + file.isAbsolute());
System.out.println("是否是一个目录 isDirectory() = " + file.isDirectory());
System.out.println("是否是一个文件 isFile() = " + file.isFile());
System.out.println("文件或目录是否存在 exists() = " + file.exists());
//打印文件夹下所有文件
File files = new File(dir);
String[] list = files.list();
for (String fileName : list){
System.out.println(fileName);
}
//创建指定目录
File mkdirFile = new File(dir + "/test");
mkdirFile.mkdir();
//创建文件
File newFile = new File(dir + "/test/newfile.txt");
newFile.createNewFile();
//删除文件
newFile.delete();
}
}
/**
运行结果:
基本路径 getPath()= /Users/mz/IdeaProjects/xdclass-count/src/chapter10/abc.txt
文件名 getName()= abc.txt
绝对路径 getAbsolutePath = /Users/mz/IdeaProjects/xdclass-count/src/chapter10/abc.txt
父路径名 getParent() = /Users/mz/IdeaProjects/xdclass-count/src/chapter10
是否是绝对路径 isAbsolute() = true
是否是一个目录 isDirectory() = false
是否是一个文件 isFile() = true
文件或目录是否存在 exists() = true
test
abc.txt
*/