目录
File(File parent, String child)
File(String parent,String child)
public boolean createNewFile()
public boolean renameTo(File dest)
public String getAbsolutePath()
Class File
查看API文档我们知道:
public class File extends Object implements Serializable, Comparable<File>文件和目录路径名的抽象表示。
用户界面和操作系统使用依赖于系统的路径名字符串命名文件和目录。 这个类提供了一个抽象的,独立于系统的层次化路径名的视图。 抽象路径名有两个组件:
抽象路径名中的第一个名称可能是目录名称,或者在Microsoft Windows UNC路径名的情况下是主机名。 抽象路径名中的每个后续名称表示一个目录; 姓氏可以表示目录或文件。 空的抽象路径名没有前缀和空名称序列。
将路径名字符串转换为抽象路径名或从抽象路径名转换本质上是系统依赖的。 当抽象路径名被转换为路径名字符串时,每个名称与默认分隔符的单个副本与下一个名称分隔开 。 默认名称分隔符由系统属性
file.separator
定义,并且可以在此类的公共静态字段separator
和separatorChar
中使用。 当路径名字符串转换为抽象路径名时,其中的名称可能由默认名称分隔符或由底层系统支持的任何其他名称 - 分隔符分隔。无论是抽象还是字符串形式,路径名可以是绝对的或相对的 。 绝对路径名是完整的,因为不需要其他信息来定位其表示的文件。 相对路径名必须根据从其他路径名获取的信息进行解释。 默认情况下,
java.io
包中的类始终会根据当前用户目录解析相对路径名。 该目录由系统属性user.dir
,通常是调用Java虚拟机的目录。抽象路径名的父级可以通过调用此类的getParent()方法获得,并由路径名的前缀和路径名的名称序列中的每个名称组成,除了最后一个。 每个目录的绝对路径名是任何File对象的祖先,绝对抽象路径名以目录的绝对路径名开头。 例如,通过将抽象路径名"/usr"表示的目录是由该路径名"/usr/local/bin"表示的目录的祖先。
前缀概念用于处理UNIX平台上的根目录,并在Microsoft Windows平台上驱动说明符,根目录和UNC路径名,如下所示:
该类的实例可以表示或不表示实际的文件系统对象,例如文件或目录。 如果它表示这样一个对象,那么该对象驻留在一个分区中 。 分区是文件系统的特定于操作系统的存储部分。 单个存储设备(例如物理磁盘驱动器,闪存,CD-ROM)可能包含多个分区。 该对象(如果有的话)将驻留在该路径名的绝对形式的一些祖先的分区named上。
文件系统可以对实际的文件系统对象上的某些操作实施限制,例如读取,写入和执行。 这些限制统称为访问权限 。 文件系统对单个对象可以具有多组访问权限。 例如,一组可能适用于对象的所有者 ,另一组可能适用于所有其他用户。 对象的访问权限可能会导致此类中的某些方法失败。
该实例
File
类是不可变的; 也就是说,一旦创建,由File
对象表示的抽象路径名永远不会改变。
- 可选系统有关的前缀字符串,如磁盘驱动器符,
"/"
为UNIX根目录,或"\\\\"
的Microsoft Windows UNC路径,并- 零个或多个字符串名称的序列。
- 对于UNIX平台,绝对路径名的前缀始终为
"/"
。 相对路径名没有前缀。 表示根目录的抽象路径名具有前缀"/"
和空名称序列。- 对于Microsoft Windows平台,包含驱动器说明符的路径名的前缀由后面跟着
":"
的驱动器号组成,如果路径名是绝对的,则可能后跟"\\"
。 UNC路径名的前缀为"\\\\"
; 主机名和共享名称是名称序列中的前两个名称。 没有指定驱动器的相对路径名没有前缀。
通过观察API文档我们知道:想要实现 IO 的操作,就必须知道硬盘上的文件表现形式,java中用一个类来供我们使用,抽象的表示硬盘上的各种文件这个叫做File。
File
文件和目录路径名的抽象表示,今后我们所说的目录就是文件夹的意思。
File类的构造方法
File(File parent, String child)
从父抽象路径和子路径名字符串创建新的File实例
File(String pathname)
通过将给定的路径名字符串转换为抽象路径名来创建新的File实例
File(String parent,String child)
从父路径名字符串和子路径名字符串创建新的File实例
创建File对象的原因
对想要进行操作的文件或者文件夹,将其封装成一个File对象,然后调用该对象中的方法对文件或者文件夹进行操作
参考代码:
import java.io.File;
public class FileDemo1 {
public static void main(String[] args) {
//将E:\代码26\demo目录封装成一个File对象
File file = new File("E:\\代码26\\demo");
System.out.println(file);
System.out.println("\n***********************\n");
//根据一个目录和一个子文件得到一个File对象
File file1 = new File(file, "靓仔.txt");
System.out.println(file1);
System.out.println("\n***********************\n");
//File(String parent, String child)
//从父路径名字符串和子路径名字符串创建新的 File实例
File file2 = new File("E:\\代码26\\demo", "靓仔.txt");
System.out.println(file2);
}
}
输出结果:
E:\代码26\demo
***********************
E:\代码26\demo\靓仔.txt
***********************
E:\代码26\demo\靓仔.txt
File类的创建功能
public boolean createNewFile()
查看API文档我们知道:
throws IOException
当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件。 检查文件的存在和文件的创建(如果不存在)是对可能影响文件的所有其他文件系统活动是单一的操作。
注意:此方法不应用于文件锁定,因为生成的协议不能使其可靠地工作。 应该使用FileLock设施。
结果
true
如果命名文件不存在并被成功创建;false
如果命名文件已经存在异常
IOException
- 如果发生I / O错误
SecurityException
- 如果存在安全管理员,并且其SecurityManager.checkWrite(java.lang.String)
方法拒绝对该文件的写入访问
public boolean mkdir()
查看API文档我们知道:
public boolean mkdir()创建由此抽象路径名命名的目录。
结果
true
当且仅当该目录被创建时;false
否则异常
SecurityException
- 如果存在安全管理员,并且其SecurityManager.checkWrite(java.lang.String)
方法不允许创建命名目录
public boolean mkdirs()
查看API文档我们知道:
public boolean mkdirs()创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。 请注意,如果此操作失败,它可能已成功创建一些必需的父目录。
结果
true
当且仅当该目录已创建,以及所有必需的父目录;false
否则异常
SecurityException
- 如果安全管理器存在,并且其SecurityManager.checkRead(java.lang.String)
方法不允许验证命名目录和所有必需的父目录的存在; 或者如果SecurityManager.checkWrite(java.lang.String)
方法不允许创建命名目录和所有必需的父目录
参考代码1:
import java.io.File;
import java.io.IOException;
public class FileDemo2 {
public static void main(String[] args) {
//创建File对象
File file = new File("E:\\代码26\\demo\\zookeeper.txt");
//public boolean createNewFile()