一、概述
File 类在日常的开发中应当是不少见的,只要是涉及到文件读写的,往往都需要借助 File 类。本篇文章为笔者的读书笔记,将对 File 类的使用做一个简单的介绍,内容如下所示:
- File 是什么
- File 的构造方法
- File 的常用方法
- File 的简单例子
接下来我们就根据上面的列举出来的内容概要对 File 类进行较为详细的介绍。
二、什么是File
File 类是 java.io 包中唯一代表磁盘文件本身的对象。File 类定义了一些与平台无关的方法来操作文件来操作文件,可以通过调用 File 类的方法,实现创建、删除、重命名文件等操作。File 类的对象主要用来获取文件本身的一些信息,如文件所在的目录、文件的长度、文件的读写权限等。此外 File 类还有以下几点注意事项:
- File 对象除了能表示文件本身外,还能表示文件目录;
- File 对象并非就是文件本身,它实际上代表的是和实际文件的一种联系,是一个抽象的表现形式,这种联系通过虚拟机来维持;
- 从第二点可知,File 对象所指代的文件并不一定是真实存在的,它有可能为空。
在大致了解了 File 类的作用之后,接下来我们就从构造方法入手,来了解 File 类是如何使用的。
三、File 类的构造方法
File 类有以下 4 个构造方法,构造方法及其参数的含义如下表所示:
方法 | 说明 |
---|---|
File(String pathname) | 通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。 |
File(String parent, String child) | 从父路径名字符串和子路径名字符串创建新的 File实例。 |
File(File parent, String child) | 从父抽象路径名和子路径名字符串创建新的 File实例。 |
File(URI uri) | 通过将给定的 file: URI转换为抽象路径名来创建新的 File实例。 |
接下来我们就通过几个例子来了解下它们各自的使用。
File(String pathname)
我们假定文件所在的位置为 C:\Users\Marck\Desktop\demo.jpg
。这是笔者电脑桌面上的一张图片,我们需要创建一个 File 实例来表示这张图片文件,代码如下所示:
public class FileDemo {
public static void main(String[] args) {
String path = "C:\\Users\\Marck\\Desktop\\demo.jpg";
// 构建File对象
File file = new File(path);
}
}
这里需要注意的是字符 '\'
需要使用转义字符 '\\'
来表示。
接着我们思考一个问题:上述的文件路径 C:\Users\Marck\Desktop\demo.jpg
是在 Windows 系统下的路径表示形式,但在其他操作系统上路径分隔符就未必是 '\'
了。那么是否有什么方法可以统一表示不同平台下的路径分隔符呢?
答案是采用符号 '/'
或者调用 File.separator
。上述图片的文件路径分隔符采用 '/'
来表示之后即为 C:/Users/Marck/Desktop/demo.jpg
,这种形式在任何平台下都是通用的;而调用 File.separator
的方式也可以达到同样的效果,上述路径在这种形式下表示为:
"C:" + File.separator + "Users" + File.separator + "Marck" + File.separator + "Desktop" + File.separator + "2.JPG";
它同样也可以达到跨平台通用的效果,但一般而言我们更愿意使用 '/'
的表示形式,因为调用 File.separator
的方式往往会比较麻烦。
File(String parent, String child)
依然以上面的图片文件路径 C:\Users\Marck\Desktop\demo.jpg
为例,将 C:\Users\Marck\Desktop
作为其父路径,代码如下所示:
public class FileDemo {
public static void main(String[] args) {
String parentPath = "C:/Users/Marck/Desktop";
File file = new File(parentPath, "demo.jpg");
}
}
通过该构造方法创建的 File 实例与第一种方法达到的效果是一致的。
File(File parent, String child)
这个构造方法其实和第二种构造方法的使用是非常相似的,只不过第一个参数 parent 的类型为 File,依旧以上面图片文件的路径为例创建该图片文件的 File 对象:
public class FileDemo {
public static void main(String[] args) {
File file = new File(new File("C:/Users/Marck/Desktop"), "demo.jpg");
}
}
通过该构造方法创建的 File 实例与第二种方法达到的效果是一致的。
File(URI uri)
这个构造方法应该是最不常使用的了,它需要借助统一资源标识符 URI 类来辅助构造 File 实例,代