1 计算机文件
1.1 什么是计算机文件
1.2 文件目录
1.3 文件斜杠和反斜杠
- 斜杠 " / " ,反斜杠" \ ";
- 反斜杠是一个特殊的字符,又称转义符,转义后面一个字符,表示一个不可见的字符或者把一个特殊字符标识为普通字符 例如 :\ ,? 、\t、\r、\n、\b…;
1.4 相对路径和绝对路径
- 绝对路径是指的是文件或者文件夹在计算机中实际的绝对路径;
- 相对路径是指的是基于文件和目录的路径;
1.5 分隔符
- windows的路径分隔符 “\”
- linux的路径分隔符"/"
2 File类
2.1 File类的作用
常量 | 描述 |
---|
public static final String separator | 文件之间的分隔符 |
2.2 File类的方法
2.2.1 增
方法 | 描述 |
---|
public boolean createNewFile() | 新增一个文件 |
public boolean mkdir() | 新增一个文件夹 |
public boolean mkdirs() | 新增多个文件夹 |
举例 | |
import java.io.File;
import java.io.IOException;
public class FileTest {
public static void main(String[] args) throws IOException {
File file1=new File("C:\\Users\\14408\\Desktop\\card\\test\\123456.txt");
System.out.println(file1.createNewFile());
File file2=new File("C:\\Users\\14408\\Desktop\\card\\test\\test1");
System.out.println(file2.mkdir());
File file3=new File("C:\\Users\\14408\\Desktop\\card\\test\\test1\\test2");
System.out.println(file3.mkdirs());
}
}
2.2.2 删
方法 | 描述 |
---|
public void delete() | 要删除一个文件夹 必须删除先文件夹所有的文件和子文件夹 |
import java.io.File;
import java.io.IOException;
public class FileTest {
public static void main(String[] args) throws IOException {
File file1=new File("C:\\Users\\14408\\Desktop\\card\\test\\123456.txt");
System.out.println(file1.delete());
File file2=new File("C:\\Users\\14408\\Desktop\\card\\test\\test1\\test2");
System.out.println(file2.delete());
}
}
2.2.3 查
方法 | 描述 |
---|
public String getPaths () | 获取路径 |
public String getparent() | 获取父路径 |
public String getName() | 获取文件名称 |
public String getAbusolute() | 获取绝对路径的名称 |
public Boolean istAbusolute() | 判断这个路径是否为绝对路径 |
public Boolean exists() | 判断这个文件是存在 |
public long length() | 判断这个文件字节码长度 |
public String [] list () | 获取指定目录下所有的文件下的文件或者文件夹字符串数组 |
public String [] listFiles () | 获取指定目录下所有的文件下的文件或者文件夹File对象数组 |
示例 | |
import java.io.File;
import java.io.IOException;
public class FileTest {
public static void main(String[] args) throws IOException {
File file1=new File("C:\\Users\\14408\\Desktop\\card\\test\\test1\\朱自清-背影.txt");
String path = file1.getPath();
System.out.println("文件路径是"+path);
System.out.println("================================");
String name = file1.getName();
System.out.println("文件路径是"+name);
System.out.println("================================");
String Parent = file1.getParent();
System.out.println("文件路径是"+Parent);
System.out.println("================================");
String AbsolutePath = file1.getAbsolutePath();
System.out.println(AbsolutePath);
System.out.println("================================");
boolean isAbsolute = file1.isAbsolute();
System.out.println(isAbsolute);
System.out.println("================================");
boolean flag = file1.exists();
System.out.println(flag);
System.out.println("================================");
long length = file1.length();
System.out.println(length);
System.out.println("================================");
File file2=new File("C:\\Users\\14408\\Desktop\\card\\test\\test1");
String[] list = file2.list();
for (String a:list){
System.out.println(a);
}
System.out.println("================================");
File[] listFiles = file2.listFiles();
for (File a:listFiles){
System.out.println(a);
}
}
}
2.2.3 改
方法 | 描述 |
---|
public boolean renameTo(File file) | 将file对象的源文件的最后一个文件和文件夹进行操作 |
注意点 | |
- 修改名字只能在同一文件夹
- 不同的路径下会对源文件进行复制
- 对文件夹操作,文件夹里面不能包含文件
2.5 练习
1 创建一个方法里面会建立10个文件和10个目录每个文件夹包含了一个文件和目录
import java.io.File;
import java.io.IOException;
public class FileTest {
public static void main(String[] args) throws IOException {
File file=new File("C:\\Users\\14408\\Desktop\\card\\test\\test1\\Directory");
createFileAndDirs(file);
}
public static void createFileAndDirs(File file) throws IOException {
File file1 = file;
for (int i = 1; i <= 10; i++) {
file1 = new File(file1, i + ".txt");
file1.createNewFile();
String parent = file1.getParent();
file1 = new File(parent, i + "");
file1.mkdir();
}
}
}```
![在这里插入图片描述](https://img-blog.csdnimg.cn/4e7ada53effb4192ae6e0b4c016345bb.png)
2 使用递归的方法删除10个目录的10个目录
```java
import java.io.File;
import java.io.IOException;
public class FileTest {
public static void main(String[] args) throws IOException {
File file=new File("C:\\Users\\14408\\Desktop\\card\\test\\test1\\Directory");
deleteFileAndDirs(file);
}
public static void createFileAndDirs(File file) throws IOException {
File file1 = file;
for (int i = 1; i <= 10; i++) {
file1 = new File(file1, i + ".txt");
file1.createNewFile();
String parent = file1.getParent();
file1 = new File(parent, i + "");
file1.mkdir();
}
}
public static void deleteFileAndDirs(File file){
File[] files = file.listFiles();
for(File file1:files){
if (file1.isDirectory()){
deleteFileAndDirs(file1);
}else{
file1.delete();
}
}
}
}