JDK11 File 类

java.io.File 类

  • 概要
  • 字段
  • 构造器
  • 实例方法




概要

Module java.base
Package java.io

所有实现了的接口:
Serializable, Comparable

public class File
extends Object
implements Serializable, Comparable


文件和目录路径名的抽象表示形式。

用户界面和操作系统使用与系统相关的路径名字符串来命名文件和目录。此类提供了一个抽象的、与系统无关的层次化路径名视图。抽象路径名有两个组成部分:

  • 一个可选的与系统有关的前缀字符串,比如盘符,"/“表示UNIX的根目录,”\\\\"表示Microsoft Windows UNC路径名。
  • 零个或更多字符串名称序列。

抽象路径名中的第一个名称1是目录名,而Microsoft Windows UNC路径名中的第一个名称则是主机名。抽象路径名中第一个名称之后的每个名称表示一个目录;最后一个名称既可以表示目录,也可以表示文件。空的抽象路径名没有前缀和名称序列。

路径名字符串与抽象路径名之间的转换与系统有关。将抽象路径名转换为路径名字符串时,每个名称与下一个名称之间用一个默认分隔符隔开。默认分隔符由系统属性 file.separator2 定义。可通过此类的公共静态字段 separatorseparatorChar 取得默认分隔符。将路径名字符串转换为抽象路径名时,可以使用默认名称分隔符或者底层系统支持的任何其他名称分隔符来分隔其中的名称。

无论是抽象路径名还是路径名字符串,都可以是绝对路径名或相对路径名。绝对路径名不需要任何其他信息就可以定位它所表示的文件。相反,相对路径名必须使用其他路径名的信息进行解释。默认情况下,java.io 包中的类总是根据当前用户目录来解析相对路径名。此目录由系统属性 user.dir 指定,通常是 Java 虚拟机的调用目录。

抽象路径名的父目录的路径名可以通过调用 getParent() 方法获取,它由路径名前缀和名称序列中的每个名称(最后一个除外)组成。对于任何具有绝对抽象路径名的 File 对象,如果其绝对抽象路径名以某个目录的绝对路径名开头,那么该目录的绝对路径名是该 File 对象的祖先。例如,目录"/usr" 是 “/usr/local/bin” 目录的一个祖先。

在处理 UNIX 平台的根目录,以及 Microsoft Windows 平台的盘符、根目录和 UNC 路径名时,将用到前缀这一概念。如下所示:

  • 对于 UNIX 平台,绝对路径名的前缀始终是 “/”。相对路径名没有前缀。表示根目录的绝对路径名的前缀为 “/” 且名称序列为空。
  • 对于 Microsoft Windows 平台,包含盘符的路径名前缀由驱动器号和一个" : "组成。如果路径名是绝对路径名,还可能后跟 “\\”。UNC 路径名的前缀是 “\\\\”;主机名和共享名是名称序列中的前两个名称。没有指定驱动器的相对路径名没有前缀。

此类的实例可能表示(也可能不表示)实际文件系统中的一个对象,如一个文件或一个目录。如果它确实表示一个这种对象,那么该对象驻留在某一分区中。分区是文件系统特定于操作系统的存储分区。一个存储设备(例如,物理磁盘驱动器、闪存、CD-ROM)可能包含多个分区。对象(如果有的话)将驻留在它某个祖先指定的分区上。

文件系统可以对一个实际文件系统对象的某些操作(比如,读、写、执行)进行限制。这些限制统称为访问权限。文件系统可以对一个对象设置多套访问权限。例如,为对象的所有者设置一套访问权限,为对象的其他用户设置一套访问权限。对象的访问权限可能导致此类的某些方法调用失败。

File 类的实例是不可变的;也就是说,File 对象一旦被创建,File 对象表示的抽象路径名将永远不能被改变。


字段

修饰符和类型 字段 描述
static String pathSeparator 与系统相关的路径分隔符(注意和下面的名称分隔符相区别,这里的路径分隔符是用来分隔多个路径的。比如/usr/bin;/dev/sr0),为了方便被表示为字符串
static char pathSeparatorChar 与系统相关的路径分隔符
static String separator
与系统相关的默认名称分隔符,为了方便被表示为字符串
static char separatorChar
与系统相关的默认名称分隔符

构造器

修饰符和类型 字段 描述

实例方法

修饰符和类型 字段 描述

  1. 在本文中,路径名中各部分名称如图所示:JDK11 File 类_第1张图片 ↩︎

  2. 可以通过如下方式访问系统属性:
           System.out.println(System.getProperty(“file.separator”)); ↩︎

你可能感兴趣的:(JDK)