今天是我自学Java的第37天。
感谢你的观看,谢谢你。
话不多说,开始今天的学习:
在计算机里面,其实就只有两样东西:文件和文件夹。
文档文件,图片文件,视频文件,应用程序文件……
那在Java中是如何处理这些文件的?
按照面向对象的原则,文件自然也是一个类。
File,文件的意思,顾名思义,就是Java里和文件相关的一个类,它即表示是文件,也可以表示文件夹。
其实文件也好,文件夹也罢,它们本质上是一回事。
你有一个视频文件,你朋友问你放在哪里了,你说在D盘“三年高考”文件夹中的“生物必修”文件夹下。
D盘\三年高考\生物必修,这就是路径。
一、File类介绍
File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作
是Windows系统中的文件路径
Windows系统中的路径是用右斜杠“\”分隔开的。
创建文件对象
构造方法:File(String pathname) 。
其中的参数即为文件路径。
直接打印File对象
控制台打印输出
输出即为文件路径,不是地址,很显然,File类底层是重写了toString方法的,不然就是Object的toString方法会打印地址。
Java中的文件路径是用左斜杠“/”分隔开的。
关于正斜杠和反斜杠
在java中路径一般用"/"。
在windows中的路径一般用"\"。
所以在java中写windows路径一般用"/",或者将"\"转义,变成"\"。
"\"是一个转义字符,什么叫转义字符?
就是这个字符它有特别的功能,比如说:
“\t”在Java中打印。
输出结果为四个空格,和Tab键一样,也就是说"\"这个转义字符可以将“t”变成tab键,让一个普通的字符有了特殊的作用。
“\\t”在Java中打印。
输出结果为“\t”,在“\”前再加一个“\”,就可以将“\”变成一个普通的字符,这样就可以直接打印“\t”了。
二、File类常用方法
1.获取方法
构造方法一:绝对路径
F:\test\a.txt,这是一个从根盘符开始的路径,绝对路径是一个完整的路径。
构造方法二:相对路径
a.txt,这是一个相对于项目目录的路径,相对路径是一个便捷的路径,开发中经常使用。
getAbsolutePath()方法
返回此File的绝对路径名字符串,相对于项目目录的路径a.txt,转化成绝对路径就是:G:\IdeaProjectsd\study\a.txt。(前面是开发工具IDEA里自定义的路径)
getPath()方法
将此File转换为路径名字符串。(构造路径),也就是构造方法是什么路径它就返回什么路径。
getName()
这个很简单,顾名思义,就是返回由此File表示的文件或目录的名称。
length()方法
返回由此File表示的文件的长度,因为我创建的文件里面什么都没有,故为0。
如果a.txt文件里有3个字母,输出就是3,也就是3个字节。
该方法只能获取文件的大小,不能获取文件夹的大小。
2.判断方法
创建两个文件
其中第一个路径下确实有这个文件;第二个路径下没有这个文件夹。
exists()方法
exists就是存在的意思,也就是此File表示的文件或目录是否实际存在?
isDirectory()方法
Directory就是目录的意思,也就是此File表示的是否为目录?
isFile()方法
意思就是此File表示的是否为文件?
3.创建和删除
createNewFile()方法
在对应的文件路径下,创建一个文件;create:创建;New:新的;File:文件。
如果文件不存在,创建文件成功,会生成一个新的空文件。
如果文件已经存在,创建文件失败。
如果文件的父路径都不存在,会抛出IO异常。
mkdir()方法
创建由此File表示的目录,也就是我们常说的文件夹。
如果创建文件夹成功,返回true;
如果创建文件夹失败,返回false。
现问一个问题:同一路径下文件夹名和文件名可以重名嘛?
按照我们常规的理解,一个是文件夹,一个是文件,它们同名应该是没关系的,但是实际上它们并不能重名!
很多小伙伴虽然接触电脑很长的时间了,但这个问题未必知道。其实原因也很简单,文件夹和文件本质都是路径。
mkdirs()方法
创建由此File表示的多级目录,也就是多级文件夹,比如F:/test/aaa/bbb/ccc。
此方法包含了mkdir方法,更加地强大。
delete()方法
删除由此File表示的文件或目录。
删除不走回收站,谨慎使用。
文件:直接删除
文件夹:要求文件夹一定是空的,非空文件夹不能直接删除。(可以从内向外)
这什么意思呢?
就是文件放在文件夹里面,得先将文件夹里面的文件全部删除,才能删除文件夹。
我们删除文件夹本质上是先将文件夹里的所有文件删除,再删除文件夹的。
总结:
领取专属 10元无门槛券
私享最新 技术干货