File、Directory
File
通常以计算机硬盘为载体存储在计算机上的信息集合,可以是 ⽂本、图 ⽚、视频、程序等,⽂件 ⼀般有拓展名,表示 ⽂件的类型。
Directory
为了便于对 ⽂件进 ⾏存取和管理,⽂件 ⽬录是由 ⽂件 ⽬录项组成的。⽂件 ⽬录分为 ⼀级 ⽬录、⼆级 ⽬录和多级 ⽬录。多级 ⽬录 结构也称为树形结构,在多级 ⽬录结构中,每 ⼀个磁盘有 ⼀个根 ⽬录,在根 ⽬录中可以包含 若 ⼲ ⼦ ⽬录和 ⽂件,在 ⼦ ⽬录中不但可以包含 ⽂件,⽽且还可以包含下 ⼀级 ⼦ ⽬录。
转义符
- 反斜杠(\)是 ⼀个特殊的字符,被称为转义字符,⽤来转义后 ⾯ ⼀个字符。转义后的字符通常 ⽤于表示 ⼀个不可 ⻅的字符或具有特殊含义的字符,⽐如 \n 则表示换 ⾏,?问号 ," 则表示 双引号,' 表示 ⼀个单引号 等
- 在 Java 中的字 ⺟前 ⾯加上反斜线""来表示常 ⻅的那些不能显示的 ASCII 字符,我们称之为转 义字符。
相对路径
- 相对某个基准 ⽬录或者 ⽂件的路径, ./ 表示当前路径; ../ 表示上级 ⽬录。
绝对路径
- 存储在硬盘上的真正路径
window 路径分割符
\ 表示 windows 系统 ⽂件 ⽬录分割符;如果是 Java 代码在 window 下写某个 ⽂件的话需要 下 ⾯的 ⽅式:
D:\\soft\\text.txt
Unix 路径分割符
如果是 Java 代码在 Linux 或者 Mac 下写某个 ⽂件的,需要下 ⾯的 ⽅式:
/usr/soft/xdcalss.net
I/O
- 把内存的中数据存储到持久化设备到上的动作称为输出,Output 操作
- 把持久化设备的数据读取到内存中的动作称为输 ⼊,Input 操作
- ⼀般把输 ⼊和输出的动作称为 IO 操作,IO 也分 ⽹络 IO,⽂件 IO
File 类
- 主要是计算机 ⽂件和 ⽬录的操作,即对 ⽂件的和 ⽬录的增删改查
- File 类表示磁盘中存在的 ⽂件和 ⽬录
- File 类的包名是 java.io,也实现了 Serializable, Comparable 两 ⼤接 ⼝以便于其对象可序列化 和 ⽐较
- File.separator ⽬录分隔符,在不同的系统下不 ⼀样, windows 和 Mac /Linux
常见 API
1@Test
2 public void fileTesting(){
3 String dir = "C:\\Users\\Ryzen-7-3800X\\Pictures\\";
4 String dir2 = "D:\\War3RV\\Warcraft III Beta";
5 String fileName = "timg.jpg";
6 //⽗路径,⼦路径
7 File file = new File(dir, fileName);
8 File file1 = new File(dir2);
9
10 //文件系统分隔符
11 System.out.println(File.separator); // \
12 //基本路径
13 System.out.println(file.getPath()); // C:\Users\Ryzen-7-3800X\Pictures\timg.jpg
14 //文件名
15 System.out.println(file.getName()); // timg.jpg
16 //绝对路径
17 System.out.println(file.getParent());// C:\Users\Ryzen-7-3800X\Pictures
18 //是否是绝对路径
19 System.out.println(file.isAbsolute());// true
20 //是否是一个目录
21 System.out.println(file.isDirectory());// false
22 //是否是一个文件
23 System.out.println(file.isFile());// false
24 //文件或目录是否存在
25 System.out.println(file.exists());// false
26 //目录中文件和目录名称所组成字符串 : file是必须为一个目录
27
28 String[] list = file1.list();
29 for (String s : list) {
30 System.out.println(s);
31 }
32
33 //创建目录
34 File newDir = new File("C:\\Users\\Ryzen-7-3800X\\Pictures\\Camera Roll" + "\\abc");
35 newDir.mkdir();
36 //创建多级目录
37 File newDir2 = new File("C:\\Users\\Ryzen-7-3800X\\Pictures\\Camera Roll" + "\\abc" + "\\efg");
38 newDir2.mkdir();
39 //创建一个新的文件
40 File newFile = new File(dir,fileName);
41 try {
42 newFile.createNewFile();
43 } catch (IOException e) {
44 e.printStackTrace();
45 }
46
47 //删除文件:当前文件必须是最终的文件才可以删除,如果是文件夹,里面含有文件,应该先删除里面的文件。
48 newFile.delete();
49 }