一、文件和目录相关概念
计算机文件(File):以计算机硬盘为载体存储在计算机上的信息集合,可以是文本(.txt)、图片(.jpg、.png、.jpeg)、视频(.mp4)、程序(.exe)等,文件一般有拓展名,表示文件的类型。
文件目录 (Directory):我们平时称之为文件夹,在根目录中可以包含若干子目录和文件,在子目录中不但可以包含文件,而且还可以包含下一级子目录。
两个斜杠:斜杠:"/" 与 反斜杠:" \ "
反斜杠(\)是一个特殊的字符,被称为转义字符,用来转义后面一个字符,比如\?表示问号 ,\ " 则表示双引号。
说到文件跟文件目录,我们会想到它们的路径问题,有相对路径也有绝对路径。
相对路径:相对某个目录或者文件的路径, ./ 表示当前路径; ../../ 表示上级目录
绝对路径:存储在硬盘上的真正路径
\ 表示windows系统文件目录分割符,因此在windows系统上写文件路径要用\\。
二、File类和相关API介绍
File
类的包名是java.io,实现了Serializable, Comparable两大接口以便于其对象可序列化和比较。File
类能新建、删除、重命名文件和目录,但File
类不能用于读取或写入文件内容。(读取文件内容,使用FileReader
、BufferedReader
等类,写入文件内容,使用FileWriter
、BufferedWriter
或PrintWriter
等类)
由于路径分割符在不同的系统(windows和 mac /Linux)下不一样,我们可以使用目录分隔符File.separator。
File类的常用构造方法:
-
File(String pathname)
:通过给定的路径名字符串(可以是相对路径或绝对路径)构造File
对象。 -
File(String parent, String child)
:从父路径名字符串和子路径名字符串构造File
对象。
File类的常用方法:
1、获取文件/目录信息
getName()
:返回由路径名表示的文件或目录的名称。
getPath()
:将此路径名转换为一个路径名字符串。
getAbsolutePath()
:返回路径名的绝对路径名字符串。
isDirectory()
:测试路径名表示的文件是否是一个目录。
isFile()
:测试路径名表示的文件是否是一个普通文件。
exists()
:测试路径名表示的文件或目录是否存在。
length()
:返回路径名表示的文件的长度(以字节为单位)。
2、创建文件/目录
createNewFile()
:当且仅当具有指定名称的文件尚不存在时,创建一个新的空文件。mkdir()
:创建路径名指定的目录
mkdirs()
:创建路径名指定的多个目录
3、删除文件/目录
delete()
:删除路径名表示的文件或目录。
4、列出目录内容
list()
:返回一个字符串数组。listFiles()
:返回一个File
数组。
注意:File
类的方法大多数都涉及到磁盘I/O操作,可能会抛出IOException
或其子类,使用try-catch语句块来处理这些异常。