1 package day8.lesson1;
2
3 import java.io.File;
4
5 /*
6 1 File类
7
8 1.1 File类概述和构造方法
9
10 File类介绍
11 它是文件和目录路径名的抽象表示
12 文件和目录是可以通过File封装成对象的
13 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以
14 是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的
15
16 File类的构造方法
17 File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例
18 File(String parent, String child) 从父路径名字符串和子路径名字符串创建新的 File实例
19 File(File parent, String child) 从父抽象路径名和子路径名字符串创建新的 File实例
20
21 */
22 public class FileDemo1 {
23 public static void main(String[] args) {
24 File f1 = new File("D:\\Workspace-java\\idea\\Workspaces\\itheima-javase\\stage2\\src\\day8\\lesson1\\java.txt");
25 System.out.println(f1);
26 //D:\Workspace-java\idea\Workspaces\itheima-javase\stage2\src\day8\lesson1\java.txt
27 //没输出对象地址,说明File类重写了toString()
28
29 File f2 = new File("D:\\Workspace-java\\idea\\Workspaces\\itheima-javase\\stage2\\src\\day8\\lesson1", "java.txt");
30 System.out.println(f2);
31 //D:\Workspace-java\idea\Workspaces\itheima-javase\stage2\src\day8\lesson1\java.txt
32
33 File f3 = new File("D:\\Workspace-java\\idea\\Workspaces\\itheima-javase\\stage2\\src\\day8\\lesson1");
34 File f4 = new File(f3, "java.txt");
35 System.out.println(f4);
36 //D:\Workspace-java\idea\Workspaces\itheima-javase\stage2\src\day8\lesson1\java.txt
37 }
38 }
1 package day8.lesson1;
2
3 import java.io.File;
4 import java.io.IOException;
5
6 /*
7
8 1.2 File类创建功能
9
10 public boolean createNewFile() 当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件
11 public boolean mkdir() 创建由此抽象路径名命名的目录
12 public boolean mkdirs() 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录
13 */
14 public class FileDemo2 {
15 public static void main(String[] args) throws IOException {
16 String base_path = "D:\\Workspace-java\\idea\\Workspaces\\itheima-javase\\stage2\\src\\day8\\lesson1\\";
17
18 //需求1:在当前目录下创建一个文件java.txt
19 File f1 = new File(base_path + "java.txt");
20 System.out.println(f1.createNewFile());
21 //注意:createNewFile()需要抛出异常,alt+回车生成throws或者手动try-catch也行
22 //若文件不存在,则创建文件,返回true
23 //若文件存在,则创建失败,返回false
24
25 //需求2:在当前目录下创建一个目录JavaSE
26 File f2 = new File(base_path + "javase");
27 System.out.println(f2.mkdir());
28 //若目录不存在,则创建目录,返回true
29 //若目录存在,则创建失败,返回false
30
31 //需求3:在当前目录下创建一个多级目录JavaWEB\\HTML
32 File f3 = new File(base_path + "javaweb\\html");
33 // System.out.println(f3.mkdir()); //false mkdir()无法创建多级目录
34 System.out.println(f3.mkdirs());
35 //若目录不存在,则创建目录,返回true
36 //若目录存在,则创建失败,返回false
37
38 //需求4:在当前目录下创建一个文件javase.txt
39 File f4 = new File(base_path + "javase.txt");
40 // System.out.println(f4.mkdir()); //true
41 //注意:要用f4调用的方法来判断要创建文件还是目录,只看给出的路径字符串不靠谱
42 // System.out.println(f4.createNewFile()); //false
43 //注意:当前目录下已存在"javase.txt",即使它是一个目录,也不允许再创建同名文件
44 //总结:创建文件时只能用.createNewFile(),创建目录是只能用.mkdir()或.mkdirs()
45 }
46 }
1 package day8.lesson1;
2
3 import java.io.File;
4
5 /*
6 1.3 File类判断和获取功能
7
8 判断功能
9 public boolean isDirectory() 测试此抽象路径名表示的File是否为目录
10 public boolean isFile() 测试此抽象路径名表示的File是否为文件
11 public boolean exists() 测试此抽象路径名表示的File是否存在
12
13 获取功能
14 public String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串
15 public String getPath() 将此抽象路径名转换为路径名字符串
16 public String getName() 返回由此抽象路径名表示的文件或目录的名称
17
18 public String[] list() 返回此抽象路径名表示的目录中的文件和目录的名称字符串数组
19 public File[] listFiles() 返回此抽象路径名表示的目录中的文件和目录的File对象数组
20 */
21 public class FileDemo3 {
22 public static void main(String[] args) {
23 String base_path = "D:\\Workspace-java\\idea\\Workspaces\\itheima-javase\\"; //当前项目根目录
24
25 File f1 = new File("stage2\\src\\day8\\lesson1\\java.txt");
26 System.out.println(f1.isDirectory()); //false
27 System.out.println(f1.isFile()); //true
28 System.out.println(f1.exists()); //true
29
30 System.out.println(f1.getAbsoluteFile());
31 //绝对路径 D:\Workspace-java\idea\Workspaces\itheima-javase\stage2\src\day8\lesson1\java.txt
32 System.out.println(f1.getPath());
33 //抽象路径 stage2\src\day8\lesson1\java.txt
34 System.out.println(f1.getName()); //java.txt
35
36 System.out.println();
37 File f2 = new File("stage2\\src\\day8\\lesson1");
38
39 String[] strArr = f2.list();
40 for (String s: strArr){
41 System.out.println(s);
42 }
43 /*
44 FileDemo1.java
45 FileDemo2.java
46 FileDemo3.java
47 FileDemo4.java
48 java.txt
49 javase
50 javase.txt
51 javaweb
52 */
53
54 System.out.println();
55 File[] fileArr = f2.listFiles();
56 for (File f: fileArr){
57 // System.out.println(f);
58 // System.out.println(f.getName()); //效果同上f2.list()遍历
59 if(f.isFile()){
60 System.out.println(f.getName()); //只输出文件名称,目录不输出
61 }
62 }
63 /*
64 stage2\src\day8\lesson1\FileDemo1.java
65 stage2\src\day8\lesson1\FileDemo2.java
66 stage2\src\day8\lesson1\FileDemo3.java
67 stage2\src\day8\lesson1\FileDemo4.java
68 stage2\src\day8\lesson1\java.txt
69 stage2\src\day8\lesson1\javase
70 stage2\src\day8\lesson1\javase.txt
71 stage2\src\day8\lesson1\javaweb
72
73 FileDemo1.java
74 FileDemo2.java
75 FileDemo3.java
76 FileDemo4.java
77 java.txt
78 */
79
80 }
81 }
1 package day8.lesson1;
2
3 import java.io.File;
4 import java.io.IOException;
5
6 /*
7 1.4 File类删除功能
8
9 public boolean delete() 删除由此抽象路径名表示的文件或目录
10
11 绝对路径和相对路径的区别
12 绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件。例如:E:\\itcast\\java.txt
13 相对路径:必须使用取自其他路径名的信息进行解释。例如:myFile\java.txt
14 */
15 public class FileDemo4 {
16 public static void main(String[] args) {
17 /*
18 项目路径
19 D:\Workspace-java\idea\Workspaces\itheima-javase
20 模块路径
21 D:\Workspace-java\idea\Workspaces\itheima-javase\stage1
22 D:\Workspace-java\idea\Workspaces\itheima-javase\stage2
23 包路径
24 D:\Workspace-java\idea\Workspaces\itheima-javase\stage1\src\day?
25 D:\Workspace-java\idea\Workspaces\itheima-javase\stage2\src\day?
26 day?下的目录==子包
27 */
28
29 //需求1:在当前模块目录下创建java.txt文件
30 File f1 = new File("stage2\\java.txt"); //与stage2下的src文件夹同级
31 // try {
32 // System.out.println(f1.createNewFile());
33 // } catch (IOException e) {
34 // e.printStackTrace();
35 // }
36
37 //需求2:删除当前模块目录下的java.txt文件
38 // System.out.println(f1.delete());
39
40 //需求3:在当前模块目录下创建itcast目录
41 File f2 = new File("stage2\\itcast");
42 // System.out.println(f2.mkdir());
43
44 //需求4:删除当前模块目录下的itcast目录
45 // System.out.println(f2.delete());
46
47 //需求5:在当前模块下创建一个目录itcast,然后在该目录下创建一个文件java.txt
48 File f3 = new File("stage2\\itcast");
49 // System.out.println(f3.mkdir());
50 File f4 = new File("stage2\\itcast\\java.txt"); //若路径不存在时,直接创建文件,会报异常
51 // try {
52 // System.out.println(f4.createNewFile());
53 // } catch (IOException e) {
54 // e.printStackTrace();
55 // }
56
57 //需求6:删除当前模块下的目录itcast
58 // System.out.println(f3.delete()); //false 目录下存在内容(子目录/文件)时,直接删目录删不掉
59 // 需要先清空目录下内容才能删该目录,即只能删除不包含内容的目录
60
61 // System.out.println(f4.delete());
62 // System.out.println(f3.delete());
63 }
64 }