droid_wrap::java

Module io

Source
Expand description

通过数据流、序列化和文件系统提供系统输入和输出。

Structs§

  • 文件和目录路径名的抽象表示。用户界面和操作系统使用系统相关的路径名字符串来命名文件和目录。 此类提供抽象的、独立于系统的分层路径名视图。抽象路径名有两个组成部分: 可选的系统相关前缀字符串,例如磁盘驱动器说明符,UNIX 根目录的“/”或 Microsoft Windows UNC 路径名的“\\”,以及零个或多个字符串名称的序列。 抽象路径名中的第一个名称可能是目录名,或者在 Microsoft Windows UNC 路径名的情况下是主机名。抽象路径名中的每个后续名称表示目录;最后一个名称可以表示目录或文件。 空的抽象路径名没有前缀和空的名称序列。路径名字符串与抽象路径名之间的转换本质上是系统相关的。 当抽象路径名转换为路径名字符串时,每个名称与下一个名称之间都由默认分隔符的单个副本分隔。默认的名称分隔符由系统属性 file.separator 定义,并可在此类的公共静态字段 Separator 和 SeparatorChar 中使用。 将路径名字符串转换为抽象路径名时,其中的名称可以用默认的名称分隔符或底层系统支持的任何其他名称分隔符分隔。路径名(无论是抽象的还是字符串形式的)可以是绝对的,也可以是相对的。 绝对路径名是完整的,因为不需要其他信息即可找到它所表示的文件。相反,相对路径名必须根据从其他路径名中获取的信息进行解释。 默认情况下,java.io 包中的类始终根据当前用户目录解析相对路径名。此目录由系统属性 user.dir 命名,通常是调用 Java 虚拟机的目录。 可以通过调用此类的 getParent 方法获取抽象路径名的父级,该父级由路径名的前缀和路径名名称序列中除最后一个之外的每个名称组成。 每个目录的绝对路径名都是任何具有绝对抽象路径名的 File 对象的祖先,该绝对抽象路径名以目录的绝对路径名开头。例如,抽象路径名“/usr”表示的目录是路径名“/usr/local/bin”表示的目录的祖先。 前缀概念用于处理 UNIX 平台上的根目录以及 Microsoft Windows 平台上的驱动器说明符、根目录和 UNC 路径名,如下所示: 对于 UNIX 平台,绝对路径名的前缀始终为“/”。相对路径名没有前缀。表示根目录的抽象路径名具有前缀“/”和空名称序列。 对于 Microsoft Windows 平台,包含驱动器说明符的路径名的前缀由驱动器号后跟“:”组成,如果路径名是绝对路径名,则可能后跟“\”。 UNC 路径名的前缀为“\\”;主机名和共享名是名称序列中的前两个名称。未指定驱动器的相对路径名没有前缀。 此类的实例可能表示也可能不表示实际的文件系统对象,例如文件或目录。如果它表示这样的对象,则该对象驻留在分区中。 分区是文件系统的操作系统特定存储部分。单个存储设备(例如物理磁盘驱动器、闪存、CD-ROM)可能包含多个分区。 对象(如果有)将驻留在此路径名的绝对形式的某个祖先命名的分区上。文件系统可以对实际文件系统对象的某些操作实施限制,例如读取、写入和执行。这些限制统称为访问权限。 文件系统可能对单个对象具有多组访问权限。例如,一组可能适用于对象的所有者,而另一组可能适用于所有其他用户。对象上的访问权限可能会导致此类中的某些方法失败。 File 类的实例是不可变的;也就是说,一旦创建,File 对象所表示的抽象路径名就永远不会改变。

Traits§

  • 类的可序列化性由实现 java.io.Serializable 接口的类启用。 警告:对不受信任的数据进行反序列化本质上是危险的,应避免。应仔细验证不受信任的数据。 未实现此接口的类将不会序列化或反序列化其任何状态。可序列化类的所有子类型本身都是可序列化的。 序列化接口没有方法或字段,仅用于标识可序列化的语义。为了允许序列化不可序列化类的子类型,子类型可以承担保存和恢复超类型的公共、受保护和(如果可访问)包字段状态的责任。 只有当子类型扩展的类具有可访问的无参数构造函数来初始化类的状态时,子类型才可以承担此责任。如果不是这种情况,将类声明为可序列化是错误的。将在运行时检测到错误。 在反序列化过程中,将使用该类的公共或受保护的无参数构造函数初始化不可序列化类的字段。无参数构造函数必须可供可序列化的子类访问。可序列化子类的字段将从流中恢复。 遍历图时,可能会遇到不支持 Serializable 接口的对象。在这种情况下,将抛出 NotSerializableException 并标识不可序列化对象的类。 在序列化和反序列化过程中需要特殊处理的类必须实现具有以下确切签名的特殊方法:

Functions§