Java基础 第四节 第八

网友投稿 574 2022-05-28

File 类

概述

构造方法

代码展示

注意事项

常用方法

获取功能的方法

代码展示

绝对路径和相对路径

代码展示

判断功能的方法

代码展示

创建删除功能的方法

代码展示

目录的遍历

概述

java.io.File

类是文件和目录路径名的抽象, 主要用于文件和目录的创建, 查找和删除等操作.

构造方法

public File(String pathname): 通过将给定的路径名字符串准换为抽象路径名来创建新的 File 实例

public File(String parent, String child): 从父路径名字符串和子路径名字符串创建新的 File 实例

public File(File parent, String child): 从父抽象路径名和子路径名字符串创建新的 File 实例

代码展示

import java.io.File; public class Test { public static void main(String[] args) { // 文件路径名 String pathname = "a.txt"; File file1 = new File(pathname); // 通过父路径和子路径字符串 String parent = "c:/Users/Windows/Desktop"; String child1 = "b.txt"; File file2 = new File(parent, child1); // 通过父级File对象和子路径字符串 File parentDir = new File("c:/Users/Windows/Desktop"); String child2 = "b.txt"; File file3 = new File(parentDir, child2); } }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

注意事项

一个 File 对象代表硬盘中实际存在的一个文件或者目录

无论该路径下是否存在文件或者目录, 都不影响 File 对象的创建

常用方法

获取功能的方法

```public String getAbsolutePath()``: 返回此 File 的绝对路径名字符串

public String getPath(): 返回此 File 的构造路径字符串

public String getName(): 返回由此 File 表示的文件或者目录的名称

public long length(): 返回由此 File 表示的文件的长度

代码展示

import java.io.File; public class Test { public static void main(String[] args) { File f = new File("c:/Users/Windows/Desktop/d.txt"); System.out.println("文件的绝对路径:" + f.getAbsolutePath()); System.out.println("文件的构造路径:" + f.getPath()); System.out.println("文件名称:" + f.getName()); System.out.println("文件长度:" + f.length()); } } 输出结果: 文件的绝对路径:c:\Users\Windows\Desktop\d.txt 文件的构造路径:c:\Users\Windows\Desktop\d.txt 文件名称:d.txt 文件长度:0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

绝对路径和相对路径

绝对路径: 从盘符开始的路径, 这是一个完整的路径

相对路径: 相对于项目目录的路径, 这是一个便捷的路径 (开发中经常使用)

代码展示

import java.io.File; public class Test { public static void main(String[] args) { // C盘下的a.txt文件 File f1 = new File("C:/Users/Windows/Desktop/a.txt"); System.out.println(f1.getAbsolutePath()); // 项目下的a.txt文件 File f2 = new File("a.txt"); System.out.println(f2.getAbsolutePath()); } } 输出结果: C:\Users\Windows\Desktop\a.txt C:\Users\Windows\IdeaProjects\测试6\a.txt

1

2

3

4

5

Java基础 第四节 第八课

6

7

8

9

10

11

12

13

14

15

16

17

判断功能的方法

public boolean exists(): 此 FIle 表示的文件或目录是否实际存在

public boolean isDirectory(): 此 File 表示的是否为目录

public boolean isFile(): 此 FIle 表示的是否为文件

代码展示

import java.io.File; public class Test { public static void main(String[] args) { File f1 = new File("a.txt"); File f2 = new File("b.txt") ; // 判断是否存在 System.out.println("f1 是否存在:" + f1.exists()); System.out.println("f2 是否存在:" + f2.exists()); // 判断是文件还是目录 System.out.println("f1 是否是文件" + f1.isFile()); System.out.println("f1 是否是目录" + f1.isDirectory()); } }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

创建删除功能的方法

public boolean createNewFile(): 当且仅当具有该名称的文件尚不存在时, 创建一个新的空文件

public boolean delete(): 删除由此 File 表示的文件或目录

public boolean mkdir(): 创建由此 File 表示的目录

public boolean mkdirs(): 创建由此 File 表示的目录, 包括任何必须但不存在的父目录

代码展示

import java.io.File; import java.io.IOException; public class Test { public static void main(String[] args) throws IOException { // 文件的创建 File f1 = new File("aaa.txt"); System.out.println("是否存在:" + f1.exists()); // false System.out.println("是否创建:" + f1.createNewFile()); // true System.out.println("是否存在:" + f1.exists()); // true // 目录的创建 File f2 = new File("newDir"); System.out.println("是否存在:" + f2.exists()); // false System.out.println("是否创建:" + f2.mkdir()); // true System.out.println("是否存在:" + f2.exists()); // true // 创建多级目录 File f3 = new File("newDira/newDirb"); System.out.println(f3.mkdir()); // false File f4 = new File("newDira/newDirb"); System.out.println(f4.mkdirs()); // true // 文件的删除 System.out.println(f1.delete()); // true // 目录的删除 System.out.println(f2.delete()); // true System.out.println(f4.delete()); // false } }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

API 中说明: delete 方法, 如果此 File 表示目录, 则目录删空才能删除.

目录的遍历

public String[] list(): 返回一个 String 数组, 表示该 File 目录中的所有子文件或目录

public File[] listFiles(): 返回一个 File 数组, 表示该 File 目录中的所有的子文件或目录

import java.io.File; public class Test { public static void main(String[] args) { File dir = new File("java_code"); // 获取当前目录下的文件夹名称 String[] names = dir.list(); for(String name : names){ System.out.println(name); } // 获取当前目录下的文件以及文件夹对象, 只要拿到了文件对象, 那么就可以获取更多信息 File[] files = dir.listFiles(); for(File file : files){ System.out.println(file); } } }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

注: 调用 listFiles 方法的 File 对象, 表示的必须是实际存在的目录. 否则返回 null, 无法进行遍历.

Java

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:递归详解
下一篇:递归
相关文章