File类的介绍
java.io.File代表与平台无关的文件或目录。也就是说可以通过File类在Java程序中操作文件或目录。
File类只能用来操作文件或目录(包括新建、删除、重命名文件和目录等操作),但不能用来访问文件中的内容。
如果需要访问文件中的内容,则需要使用输入/输出流。
绝对路径和相对路径、路径分隔符
Windows中绝对路径以盘符开头;Linux中绝对路径以斜线/开头;
不以盘符和斜线/开头的路径就是相对路径。默认情况下,系统总是依据用户的工作路径来解释相对路径,这个路径由系统属性user.dir指定,通常也就是运行java虚拟机时所在的路径。
Windows的路径分隔符使用反斜线\(Linux中使用斜线/),而Java程序中的反斜线表示转义字符,所以如果需要在Windows的路径中包括反斜线,则应该使用两条反斜线\\,如:C:\\adb\\text.txt。
Java程序支持将斜线/当成平台无关的路径分隔符,所以Java程序中表示Windows系统的路径分隔符\\可以用斜线/代替。
访问文件或目录的名称和路径的方法
public String getName(): 返回File构造方法中传入路径表示的文件名或目录名(如果是目录名则是最后一级子目录名)
public String getPath(): 返回File构造方法中传入的路径名
public String getParent():返回File构造方法中传入文件或目录路径的父目录,如果传入路径没有父目录,则返回null
public String getAbsolutePath(): 返回File对象表示的文件或目录的绝对路径名
public File getAbsoluteFile(): 返回一个通过此File对象表示的文件或目录的绝对路径名重新new出来的一个File对象
文件或目录检测相关的方法
public boolean exists(): 判断此File对象表示的文件或目录是否存在
public boolean canWrite():判断此File对象表示的文件或目录是否可写
public boolean canRead():判断此File对象表示的文件或目录是否可读
public boolean isFile():判断此File对象是否是表示文件,而非目录
public boolean isDirectory():判断此File对象是否是表示目录,而非文件
public boolean isAbsolute():判断此File对象的构造方法传入的路径是否是绝对路径public long length()
:返回文件内容的长度
public boolean createNewFile():创建一个此File对象所表示的文件,返回true则创建成功,false则失败。
如果此File对象表示的文件存在,则创建失败;
如果此File对象表示的是一个存在的目录,则创建失败;
如果此File对象构造方法传入路径表示的文件不存在,则创建成功。即使此路径是一个不带文件后缀扩展名的目录路径,只要此路径目录不存在,也能创建成功,新建的文件名就是路径最后一级子目录名
public boolean mkdir():创建一个此File对象表示的目录,返回true则创建成功,false则失败。
如果此File对象表示的是一个存在的目录,则创建失败;
如果表示的是一个存在的文件,则也创建失败;
如果此File对象传入路径表示的目录不存在,则创建成功(其中如果传入路径包含父目录,则要保证父目录存在,否则也会创建失败)。另外,即使传入路径是一个带文件后缀名的文件路径,只要此路径文件不存在,也能创建成功,新建目录的最后一级子目录名就是包含后缀名的文件名。
public boolean mkdirs():创建一个此File对象表示的目录,如果File对象构造方法的传入路径包括父目录,则当父目录不存在时,也会自动创建不存在的父目录。返回true创建成功,false则失败。
如果此File对象表示一个存在的文件或目录,则创建失败;
如果此File对象构造方法的传入路径只是一级目录路径(即不包含父目录),并且此路径表示的目录不存在,则也能创建成功;
与mkdir方法相比较,只是多了一个当传入路径包含父目录,且此父目录不存在时,会自动创建父目录的功能。
public boolean delete():删除此File对象表示的文件或目录,返回true则删除成功,false则失败。
如果此File对象表示的文件或目录不存在,则删除失败;
如果此File对象表示的是一个目录,则当此目录下存在子目录或文件时,需把此目录下的所有子目录和文件都删除后,才能将此目录删除成功。