【自学笔记】 Java基础 - File
# File## File类
- 在读写数据时告诉虚拟机要操作的(文件/文件夹)在哪
- 对(文件/文件夹)本身进行操作。包括创建和删除等
### 概述
- 它是文件和目录路径名的抽象表示
- 文件和目录可以通过File封装成对象
- File封装的对象仅仅是一个路径名。它可以是存在的,也可以是不存在的
### 构造方法
- `File(String pathname)` : 通过将给定的路径名字符串转换为抽象路径名来创建新的`File`实例
- `File(String parent, String child)`从父路径名字符串和子路径名字符串创建新的`File`实例
- `File(File parent, String child)` 从父抽象路径名和子路径名字符串创建新的`File`实例
```Java
public class FileDemo1 {
public static void main(String[] args) {
// extracted();
// extracted1();
// extracted2();
}
private static void extracted2() {
// `File(File parent, String child)` 从父抽象路径名和子路径名字符串创建新的`File`实例
File file1 = new File("D:\\新建文件夹 (2)");
String path="a.txt";
File file = new File(file1,path);
System.out.println(file);
}
private static void extracted1() {
// `File(String parent, String child)`从父路径名字符串和子路径名字符串创建新的`File`实例
String path1 = "D:\\新建文件夹 (2)";
String path2 = "a.txt";
File file = new File(path1,path2);
System.out.println(file);
}
private static void extracted() {
// `File(String pathname)` : 通过将给定的路径名字符串转换为抽象路径名来创建新的`File`实例
String path = "D:\\新建文件夹 (2)\\a.txt";
File file = new File(path);
}
}
```
### 绝对路径和相对路径
#### 绝对路径
从盘符开始
`File file1 = new File("D:\\新建文件夹 (2)\\a.txt")`
#### 相对路径
相对当前目录下的路径
```Java
File file2 = new File("a.txt");
File file3 = new File("模块名\\a.txt");
```
### File 类创建功能
- public boolean createNewFile(): 创建一 个新的空的文件
注:
1.如果文件存储,返回false。如果不存在创建成功,返回true,只能创建文件无论有无后缀名
2.文件所在的文件夹,必须要存在
- public boolean mkdir(): 创建一个单级文件夹
注:只能创建单级文件夹,不管调用者有没有后缀名,只能创建单级文件夹
- public boolean mkdirs(): 创建一个多级文件夹
注:只能创建单级文件夹,也可以创建多级文件夹,不管调用者有没有后缀名,只能创建单级文件夹
### File 类删除功能
- `public boolean delete()`:删除由此抽象路径名表示的文件或目录
注:
1.删除不走回收站
2.如果删除的是文件,那么直接删除,如果删除的是文件夹只能删除空文件夹
3.如果要删除一个有内容的文件夹,只能先进入到这个文件夹,把里面的内容全部删除文件,才能再次删除这个文件夹。
### File 类判断和获取功能
public boolean isDirectory() 测试此抽象路径名表示的File是否为目录
public boolean isFile() 测试此抽象路径名表示的File是否为文件
public boolean exists() 测试此抽象路径名表态的File是否存在
public String getName() 返回由此抽象路径名表示的文件或目录的名称
注:
1.如果调用的是文件,那么获取的是文件名和后缀名
```Java
public class FileDemo4 {
public static void main(String[] args) {
// public boolean isDirectory() 测试此抽象路径名表示的File是否为目录
// public boolean isFile() 测试此抽象路径名表示的File是否为文件
// public boolean exists() 测试此抽象路径名表态的File是否存在
// public String getName() 返回由此抽象路径名表示的文件或目录的名称
File file = new File("D:\\FileTest\\a.txt");
boolean file1 = file.isFile();
boolean directory = file.isDirectory();
boolean exists = file.exists();
System.out.println(file1);
System.out.println(directory);
System.out.println(exists);
System.out.println(file.getName());
}
}
```
### File 类高级获取功能
- public File[] listFiles()返回此抽象路径名表示的目录中的文件和目录的File对象数组
注:包括隐藏文件和隐藏文件夹都可以获取
```Java
public class FileDemo5 {
public static void main(String[] args) {
File file= new File("D:\\");
File[] files = file.listFiles();
for (File file1 : files) {
System.out.println(file1);
}
}
}
```
#### 注意事项
- 当调用者是一个文件时,返回一个null
- 当调用者是一个空文件夹时,返回长度为0的数组
- 当调用者是一个有内容的文件夹时,获取这个文件夹内的所有File对象存入数组
- 当调用者是一个由权限才能进入的文件夹时,返回一个null
## IO流
- 可以将数据从本地文件读取出来
- 可以将数据从内存保存到本地文件 这个不太容易理解,小白一个
页:
[1]