java.io.file常用方法
一、file的静态方法
separatorChar
// 与系统相关的默认名称分隔符。在UNIX系统上,该字段的值为'/' ; 在Microsoft Windows系统上是'\\' 。
public static void main(String[] args) {
char separatorChar = File.separatorChar;
System.out.println(separatorChar);
}
separator
// 与系统相关的默认名称 - 分隔符字符,以方便的方式表示为字符串。 该字符串包含一个字符,即separatorChar 。
public static void main(String[] args) {
String separator = File.separator;
System.out.println(separator);
}
pathSeparator
// 与系统相关的路径分隔符。 在LUNIX系统上,这个字符是':' ; 在Windows系统上,它是';' 。
public static void main(String[] args) {
String pathSeparator = File.pathSeparator;
System.out.println(pathSeparator);
}
pathSeparatorChar
// 与系统相关的路径分隔符字符,为方便起见,表示为字符串。 此字符串包含单个字符,即pathSeparatorChar 。
public static void main(String[] args) {
char pathSeparatorChar = File.pathSeparatorChar;
System.out.println(pathSeparatorChar);
}
二、file的构造方法
File(String pathname)
通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。 如果给定的字符串是空字符串,则结果是空的抽象路径名。
异常:NullPointerException - 如果 pathname参数是 null
File(String parent, String child)
从父路径名字符串和子路径名字符串创建新的File实例。
如果parent是null则创建新的File实例,就像在给定的child路径名字符串上调用单参数File构造函数一样。
否则,将使用parent路径名字符串来表示目录,并将child路径名字符串用于表示目录或文件。 如果child路径名字符串是绝对的,那么它将以系统相关的方式转换为相对路径名。 如果parent是空字符串,则通过将child转换为抽象路径名并根据系统相关的默认目录解析结果来创建新的File实例。 否则,每个路径名字符串将转换为抽象路径名,并且子抽象路径名将针对父对象进行解析。
异常:NullPointerException - 如果 child是 null
File(File parent, String child)
从父抽象路径名和子路径名字符串创建新的File实例。
如果parent是null则创建新的File实例,就像在给定的child路径名字符串上调用单参数File构造函数一样。
否则,采用parent抽象路径名来表示目录,并将child路径名字符串用于表示目录或文件。 如果child路径名字符串是绝对的,那么它将以系统相关的方式转换为相对路径名。 如果parent是空的抽象路径名,那么新的File实例是通过将child转换为抽象路径名并根据系统相关的默认目录解析结果来创建的。 否则,每个路径名字符串将转换为抽象路径名,并且子抽象路径名将针对父对象进行解析。
异常:NullPointerException - 如果 child是 null
三、判断是否是文件或者目录
exists 判断文件或者文件夹是否存在
public boolean exists()
测试此抽象路径名表示的文件或目录是否存在。
结果
true当且仅当存在由此抽象路径名表示的文件或目录时; false否则
异常
SecurityException - 如果安全管理器存在,并且其 SecurityManager.checkRead(java.lang.String)方法拒绝对文件或目录的读取访问
isDirectory 判断文件夹是否存在
public boolean isDirectory()
测试此抽象路径名表示的文件是否为目录。
在需要区分I / O异常和文件不是目录的情况下,或同时需要同一文件的几个属性的情况下,可以使用Files.readAttributes方法。
结果
true当且仅当该抽象路径名表示的文件存在且为目录时; false否则
异常
SecurityException - 如果安全管理器存在,并且其 SecurityManager.checkRead(java.lang.String)方法拒绝对该文件的读取访问
isFile 判断文件是否存在
public boolean isFile()
测试此抽象路径名表示的文件是否为普通文件。 如果文件不是目录,并且另外满足其他依赖于系统的条件,文件是正常的 。 Java应用程序创建的任何非目录文件都保证是一个普通文件。
在需要区分I / O异常与文件不是正常文件的情况下,或同时需要同一文件的几个属性的情况下,可以使用Files.readAttributes方法。
结果
true当且仅当该抽象路径名表示的文件存在且为普通文件时; false否则
异常
SecurityException - 如果安全管理器存在,并且其 SecurityManager.checkRead(java.lang.String)方法拒绝对该文件的读取访问
四、file 创建文件或者目录(即文件夹)
createNewFile 只能创建文件
public boolean createNewFile()
throws IOException
当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件。 检查文件的存在和文件的创建(如果不存在)是对可能影响文件的所有其他文件系统活动是单一的操作。
注意:此方法不应用于文件锁定,因为生成的协议不能使其可靠地工作。 应该使用FileLock设施。
结果
true如果命名文件不存在并被成功创建; false如果命名文件已经存在
异常
IOException - 如果发生I / O错误
SecurityException - 如果存在安全管理员,并且其 SecurityManager.checkWrite(java.lang.String)方法拒绝对该文件的写入访问
mkdir 只能创建单层文件夹(即目录)
public boolean mkdir()
创建由此抽象路径名命名的目录。
结果
true当且仅当该目录被创建时; false否则
异常
SecurityException - 如果存在安全管理员,并且其 SecurityManager.checkWrite(java.lang.String)方法不允许创建命名目录
mkdirs 可以创建多层文件夹
public boolean mkdirs()
创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。 请注意,如果此操作失败,它可能已成功创建一些必需的父目录。
结果
true当且仅当该目录已创建,以及所有必需的父目录; false否则
异常
SecurityException - 如果安全管理器存在,并且其SecurityManager.checkRead(java.lang.String)方法不允许验证命名目录和所有必需的父目录的存在; 或者如果SecurityManager.checkWrite(java.lang.String)方法不允许创建命名目录和所有必需的父目录
五、获取文件或者文件夹
getName 获取当前file对象的文件或者目录名称
public String getName()
返回由此抽象路径名表示的文件或目录的名称。 这只是路径名称序列中的最后一个名字。 如果路径名的名称序列为空,则返回空字符串。
结果
由此抽象路径名表示的文件或目录的名称,如果此路径名的名称序列为空,则为空字符串
getPath 获取当前file对象的文件或者目录的相对路径
public String getPath()
将此抽象路径名转换为路径名字符串。 结果字符串使用default name-separator character以名称顺序分隔名称。
结果
这个抽象路径名的字符串形式
getAbsolutePath 获取当前file对象的文件或者目录的绝对路径
public String getAbsolutePath()
返回此抽象路径名的绝对路径名字符串。
如果这个抽象路径名已经是绝对的,那么路径名字符串就像getPath()方法一样简单地返回。 如果此抽象路径名为空抽象路径名,则返回由系统属性user.dir命名的当前用户目录的路径名字符串。 否则,该路径名以系统相关的方式解决。 在UNIX系统上,通过将相对路径名解析为当前用户目录,使其成为绝对路径。 在Microsoft Windows系统上,相对路径名是绝对的,通过将其与由路径名命名的驱动器的当前目录(如果有的话)解决; 如果没有,则针对当前用户目录进行解析。
结果
绝对路径名字符串表示与此抽象路径名相同的文件或目录
异常
SecurityException - 如果无法访问所需的系统属性值。
六、file 删除
delete 删除空目录或者空文件
public boolean delete()
删除由此抽象路径名表示的文件或目录。 如果此路径名表示目录,则目录必须为空才能删除。
请注意, Files类定义了一个delete方法,当一个文件不能被删除时,它会抛出一个IOException 。 这对于错误报告和诊断文件无法被删除的原因很有用。
结果
true当且仅当文件或目录被成功删除时; false否则
异常
SecurityException - 如果安全管理器存在,并且其 SecurityManager.checkDelete(java.lang.String)方法拒绝对该文件的删除访问