文件系统操作,我们需要了解是怎么操作的,文件是存储在硬盘上的,直接通过代码操作硬盘,不是很方便,就在内存中创建一个对应的对象,通过操作这个内存中的对象,就可以间接影响到硬盘的文件情况~
所以,Java 标准库给我们提供了 File 这个类,File 对象是硬盘上的一个文件"抽象"的表示,通过代码对 File 对象的操作,间接影响硬盘的文件内容
打个形象的比方,这里的 File 对象相当于遥控器,我们可以通过控制遥控器,即通过代码操作 File 对象,来间接控制电视频道,即间接控制硬盘的文件
2.1 构造 File 对象
File类构造方法如下:
其中,最常用的还是第2种,构造的过程中,可以使用绝对路径/相对路径 进行初始化
注意:这个路径指向的文件,可以是真实存在的,也可以是不存在的!!! 这里是不受限制的~
创建 File 对象,需要导入该包
import java.io.File;
具体创建 File 对象过程如下:
public class IODemo {
public static void main(String[] args) throws IOException {
File file = new File("d:/student.txt");
//这里可以是相对路径,也可以是绝对路径
}
}
2.2 File 提供的方法
这些方法,我们一看名字,就知道怎么用,很容易理解,不需要去记,在实践中掌握就可以啦~ 忘记或者不会的,查查就可以!
其中需要注意的是:
【Q】如果输入的路径,文件不存在,系统会自动创建一个文件吗?
【A】并不会,只有手动调用 createNewFile() 方法,才可以创建文件(注意文件是文件,目录是目录,区分开来!!!)
下面,我们进行代码的演示,以熟悉上述操作:
1)前面五种操作,返回值均为 boolean 类型
public class IODemo1 {
public static void main(String[] args) throws IOException {
File file = new File("d:/student.txt");
System.out.println(file.getParent());
System.out.println(file.getName());
System.out.println(file.getPath());
System.out.println(file.getAbsoluteFile());
System.out.println(file.getCanonicalFile());
}
}
打印结果如下:
2)接下来的五种操作
public class IODemo2 {
public static void main(String[] args) throws IOException {
File file = new File("./hello world.txt");
System.out.println(file.exists());
System.out.println(file.isDirectory());
System.out.println(file.isAbsolute());
//创建文件
file.createNewFile();
System.out.println(file.exists());
System.out.println(file.isDirectory());
System.out.println(file.isFile());
//删除文件之后
file.delete();
System.out.println(file.exists());
}
}
打印结果如下:
3)创建目录
public class IODemo3 {
public static void main(String[] args) {
File file = new File("test-dir/aaa/bbb");
//只能创建1个目录
//file.mkdir();
//创建多级目录
file.mkdirs();
}
}
打印结果如下:可以在左侧看到,文件夹test-dir,创建了多级目录
4)罗列目录下的内容
public class IODemo4 {
public static void main(String[] args) {
File file = new File("test-dir");
//罗列目录下的内容
String[] result1 = file.list();
System.out.println(Arrays.toString(result1));
File[] result2 = file.listFiles();
System.out.println(Arrays.toString(result2));
}
}
打印结果如下:
5)修改文件名字
public class IODemo5 {
public static void main(String[] args) {
File src = new File("./test-dir");
File dest = new File("./test123");
src.renameTo(dest);
}
}
打印结果如下:
以上是 File 类方法的一些基本操作演示,通过这些案例,我们更够更加熟悉叭~