目录

Life in Flow

知不知,尚矣;不知知,病矣。
不知不知,殆矣。

X

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    }

作者:Soulboy