【Java】File的概述和构造方法

一、引入

假设我们现在在玩拼图小游戏,假设游戏有一个保存拼图进度的功能到txt文件中,那该多好,这样下次在玩的时候就不需要重头开始玩了。

想要实现这个功能,我们需要学习两个知识:1、txt文本文件保存在哪里;2、数据如何进行传输,也就是如何保存到文件中。

image-20240501213426496

在计算机中,文件保存的位置,也叫作 路径,在Java中会用 File类 进行表示。

而数据的传输就需要用到 IO流


二、路径

路径分为两种:相对路径和绝对路径。

相对路径是不带盘符的,它是相对于当前项目而言的。

绝对路径是带盘符的。


三、File类

File对象 就表示一个路径,这个路径可以是文件的路径、也可以是文件夹的路径。

这个路径可以是存在的,也可以是不存在的。

学习一个类,我们需要知道如何创建它的对象,File类常见的方法有三个。

  • public File(String pathname) :根据文件路径创建文件对象

  • public File(String parent, String child) :根据父路径名字符串和子路径名字符串创建文件对象(拼接)

  • public File(File parent, String child) :根据父路径对应文件对象和子路径名字符串创建文件对象(拼接)


四、public File(String pathname)

根据文件路径创建文件对象:说白了就是:根据字符串表示的路径,变成 File对象

其中路径可以写绝对路径,也可以写相对路径,相对路径是相对于当前项目而言的,需要加上模块名。

String str = "C:\\Users\\alienware\\Desktop\\a.txt";
File f1 = new File(str);
System.out.println(f1); // C:\Users\alienware\Desktop\a.txt

那么为什么要将一个字符串表示的路径变成 File对象

其实很简单,变成 File对象 就是为了使用里面的方法,例如 delete(),可以将这个文件删除。

如果你仅仅只是一个字符串表示的,在Java的眼中,它仅仅是一个字符串而已,它不能跟本地的文件产生关联。

但一旦创建了 File对象,在Java眼中就不是一个字符串了,而是一个真实的路径,这个路径就表示桌面上的 a.txt


五、public File(String parent, String child)

根据父路径名字符串子路径名字符串创建文件对象。

父路径:全称叫 父级路径

子路径:全称叫 子级路径

C:\Users\alienware\Desktop\a.txt 路径为例,父路径:去掉自己,剩下来的所有,即 C:\Users\alienware\Desktop

剩下来的 a.txt 就是子级路径。

第二个构造的目的就是将 父级路径子级路径 进行拼接。

String parent = "C:\\Users\\alienware\\Desktop";
String child = "a.txt";
File f2 = new File(parent,child);
System.out.println(f2); // C:\Users\alienware\Desktop\a.txt

如果你不想用这种方式,你也可以自己去拼接。

PS:在Java中 \ 叫做转义字符,因此如果想让它变成路径分隔符,需要将它变成两个 \,即 \\

File f3 = new File(parent + "\\" + child);
System.out.println(f3);// C:\Users\alienware\Desktop\a.txt

但是在以后我们一般不会自己拼接,而是使用Java里面的构造方法来帮我们拼接。

因为在以后我们写完的代码是不一定运行在 Windows操作系统 里面的,在 Windows操作系统 中,它的路径分隔符是 \(反斜线),但是在以后还会学习 Linux操作系统,在这个操作系统里面路径分隔符是 /(正斜线)

因此如果你是自己拼接的话,这个代码是死的。而Java底层会先获取你的操作系统,根据不同的操作系统它会用不同的路径分隔符。

因此如果以后涉及到路径的拼接,还是建议使用构造方法稳妥一些。


六、public File(File parent, String child)

第三个其实是跟第二个一样的,只不过它里面的类型不一样:父级路径是 File,子级路径是 String

File parent2 = new File("C:\\Users\\alienware\\Desktop");
String child2 = "a.txt";
File f4 = new File(parent2,child2);
System.out.println(f4); // C:\Users\alienware\Desktop\a.txt

七、总结

1、File 表示什么?

File对象 表示路径,可以是文件的路径、也可以是文件夹的路径。

这个路径可以是存在的,也可以是不存在的。

2、绝对路径和相对路径是什么意思?

绝对路径是带盘符的。

相对路径是不带盘符的,默认到当前项目下找。

3、File三种构造方法的作用?

变成 File对象 的目的就是为了使用里面的方法

  • public File(String pathname) :根据文件路径创建文件对象

  • public File(String parent, String child) :根据父路径名字符串和子路径名字符串创建文件对象(拼接)

  • public File(File parent, String child) :根据父路径对应文件对象和子路径名字符串创建文件对象(拼接)

那么为什么要将一个字符串表示的路径变成 File对象

其实很简单,变成 File对象 就是为了使用里面的方法,例如 delete(),可以将这个文件删除。

如果你仅仅只是一个字符串表示的,在Java的眼中,它仅仅是一个字符串而已,它不能跟本地的文件产生关联。

但一旦创建了 File对象,在Java眼中就不是一个字符串了,而是一个真实的路径,这个路径就表示桌面上的 a.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值