File类:(jdk api)
I/O流讲到这里File将结束这里的讲解:如果对你用所帮助欢迎点赞收藏!
再次我整理了I/O流的思维图,希望对大家有所帮助!有错误的地方也希望大家提出,讨论,并修改!
文档中使用JDK API(中文版) 作为参考:https://www.matools.com/api/java8
public class File
extends Object
implements Serializable, Comparable<File>
文件和目录路径名的抽象表示。
用户界面和操作系统使用依赖于系统的路径名字符串命名文件和目录。 这个类提供了一个抽象的,独立于系统的层次化路径名的视图。 抽象路径名有两个组件:
- 可选系统有关的前缀字符串,如磁盘驱动器符,
"/"
为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)可能包含多个分区。 该对象(如果有的话)将驻留在该路径名的绝对形式的一些祖先的分区named上。
文件系统可以对实际的文件系统对象上的某些操作实施限制,例如读取,写入和执行。 这些限制统称为访问权限 。 文件系统对单个对象可以具有多组访问权限。 例如,一组可能适用于对象的所有者 ,另一组可能适用于所有其他用户。 对象的访问权限可能会导致此类中的某些方法失败。
该实例File
类是不可变的; 也就是说,一旦创建,由File
对象表示的抽象路径名永远不会改变。
具体自带方法可参考JDK API -java.io-File
Modifier and Type | Method and Description |
---|---|
boolean | canExecute() 测试应用程序是否可以执行此抽象路径名表示的文件。 |
boolean | canRead() 测试应用程序是否可以读取由此抽象路径名表示的文件。 |
boolean | canWrite() 测试应用程序是否可以修改由此抽象路径名表示的文件。 |
int | compareTo(File pathname) 比较两个抽象的路径名字典。 |
boolean | createNewFile() 当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件。 |
static File | createTempFile(String prefix, String suffix) 在默认临时文件目录中创建一个空文件,使用给定的前缀和后缀生成其名称。 |
static File | createTempFile(String prefix, String suffix, File directory) 在指定的目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。 |
boolean | delete() 删除由此抽象路径名表示的文件或目录。 |
void | deleteOnExit() 请求在虚拟机终止时删除由此抽象路径名表示的文件或目录。 |
boolean | equals(Object obj) 测试此抽象路径名与给定对象的相等性。 |
boolean | exists() 测试此抽象路径名表示的文件或目录是否存在。 |
File | getAbsoluteFile() 返回此抽象路径名的绝对形式。 |
String | getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。 |
File | getCanonicalFile() 返回此抽象路径名的规范形式。 |
String | getCanonicalPath() 返回此抽象路径名的规范路径名字符串。 |
long | getFreeSpace() 返回分区未分配的字节数 named此抽象路径名。 |
String | getName() 返回由此抽象路径名表示的文件或目录的名称。 |
String | getParent() 返回此抽象路径名的父 null 的路径名字符串,如果此路径名未命名为父目录,则返回null。 |
File | getParentFile() 返回此抽象路径名的父,或抽象路径名 null 如果此路径名没有指定父目录。 |
String | getPath() 将此抽象路径名转换为路径名字符串。 |
long | getTotalSpace() 通过此抽象路径名返回分区 named的大小。 |
long | getUsableSpace() 返回上的分区提供给该虚拟机的字节数 named此抽象路径名。 |
int | hashCode() 计算此抽象路径名的哈希码。 |
boolean | isAbsolute() 测试这个抽象路径名是否是绝对的。 |
boolean | isDirectory() 测试此抽象路径名表示的文件是否为目录。 |
boolean | isFile() 测试此抽象路径名表示的文件是否为普通文件。 |
boolean | isHidden() 测试此抽象路径名命名的文件是否为隐藏文件。 |
long | lastModified() 返回此抽象路径名表示的文件上次修改的时间。 |
long | length() 返回由此抽象路径名表示的文件的长度。 |
String[] | list() 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。 |
String[] | list(FilenameFilter filter) 返回一个字符串数组,命名由此抽象路径名表示的目录中满足指定过滤器的文件和目录。 |
File[] | listFiles() 返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。 |
File[] | listFiles(FileFilter filter) 返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。 |
File[] | listFiles(FilenameFilter filter) 返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。 |
static File[] | listRoots() 列出可用的文件系统根。 |
boolean | mkdir() 创建由此抽象路径名命名的目录。 |
boolean | mkdirs() 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。 |
boolean | renameTo(File dest) 重命名由此抽象路径名表示的文件。 |
boolean | setExecutable(boolean executable) 为此抽象路径名设置所有者的执行权限的便利方法。 |
boolean | setExecutable(boolean executable, boolean ownerOnly) 设置该抽象路径名的所有者或每个人的执行权限。 |
boolean | setLastModified(long time) 设置由此抽象路径名命名的文件或目录的最后修改时间。 |
boolean | setReadable(boolean readable) 一种方便的方法来设置所有者对此抽象路径名的读取权限。 |
boolean | setReadable(boolean readable, boolean ownerOnly) 设置此抽象路径名的所有者或每个人的读取权限。 |
boolean | setReadOnly() 标记由此抽象路径名命名的文件或目录,以便只允许读取操作。 |
boolean | setWritable(boolean writable) 一种方便的方法来设置所有者对此抽象路径名的写入权限。 |
boolean | setWritable(boolean writable, boolean ownerOnly) 设置此抽象路径名的所有者或每个人的写入权限。 |
Path | toPath() 返回从此抽象路径构造的java.nio.file.Path 对象。 |
String | toString() 返回此抽象路径名的路径名字符串。 |
URI | toURI() 构造一个表示此抽象路径名的 file: URI。 |
public static void main(String[] args)throws Exception {
File file = new File("F:\\inputStream2.txt");
//创建文件对象
System.out.println(file.toString());
//判断是否存在
if(!file.exists()){
//创建文件
boolean b=file.createNewFile();
System.out.println(b);
}
//删除
//file.delete();
//toPath()`返回从此抽象路径[构造的`java.nio.file.Path`]对象。
Path path=file.toPath();
System.out.println(path);
//`toString()`返回此抽象路径名的路径名字符串。
String str= file.toString();
System.out.println(str);
//`getName()`返回由此抽象路径名表示的文件或目录的名称。
String name=file.getName();
System.out.println(name);
}
注意:代码有限没有一一列举,大家可以根据JDK API 文档是尝试!