通常在软件开发项目中,长期保存数据的办法主要有两类:一类是使用数据库保存,;另外一类就是把数据保存在文件中——使用 IO 和 XML 存取数据,学习它们之前我们要先了解File类
目录
一、File 类
1.File 类的构造方法
2.File 类静态属性
3.静态导入
4.File 类还提供了一些用于返回指定路径下的目录和文件的方法
一、File 类
File
类生成的对象就代表一个特定的文件或目录,并且 File
类提供了若干方法对这个文件或目录进行读写等各种操作。 File
类在 java.io
包下,与系统输入/输出相关的类通常都在此包下
1.File
类的构造方法
-
File(String pathname)
:创建一个新的 File 实例,该实例的存放路径是 pathname。 -
File(String parent, String child)
:创建一个新的 File 实例,该实例的存放路径是由 parent 和 child 拼接而成的。 -
File(File parent, String child)
:创建一个新的File
实例。parent
代表目录,child
代表文件名,因此该实例的存放路径是parent
目录中的child
文件。 -
File(URI uri)
:创建一个新的File
实例,该实例的存放路径是由 URI 类型的参数指定的。
2.File
类静态属性
如何统一 Windows 或 Linux 等系统中的路径分隔符呢?可以使用 File
类提供的一些静态属性,通过这些静态属性,可以获得 Java 虚拟机所在操作系统的分隔符相关信息,如下
-
File.pathSeparator
:与系统有关的路径分隔符,值是一个字符串,如在 Windows 中的此值是';'
,在 Linux 中的此值是':'
。 -
File.pathSeparatorChar
:与系统有关的路径分隔符,值是一个字符,如在 Windows 中的此值是';'
,在 Linux 中的此值是':'
。 -
File.separator
:与系统有关的路径层级分隔符,值是一个字符串,如在 Windows 中的此值是'\'
,在 Linux 中的此值是'/'
。 -
File.separatorChar
:与系统有关的路径层级分隔符,值是一个字符,如在 Windows 中的此值是'\'
,在 Linux 中的此值是'/'
。
3.静态导入
JDK 从 1.5 版开始,增加了静态导入的特性,用来导入指定类的某个静态属性或静态方法,或全部的静态属性或静态方法,静态导入使用 import static
语句。
//静态导入前的代码
public class TestStatic {
public static void main(String[] args) {
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.toHexString(12));
}
}
//静态导入后的代码
import static java.lang.System.out;
import static java.lang.Integer.*;
public class TestStatic2 {
public static void main(String[] args) {
out.println(MAX_VALUE);
out.println(toHexString(12));
}
}
可以看出,使用静态导入省略了 System
和 Integer
的书写,编写代码相对简单。在使用静态导入的时候,需要注意以下几点
- 静态导入在代码中必须写
import static
。 - 提防静态导入冲突。例如,如果同时对
Integer
类和Long
类执行了静态导入,引用 MAX_VALUE 属性将导致一个编译器错误,因为Integer
类和Long
类都有一个 MAX_VALUE 常量,在使用时编译器就无法区分重名的 MAX_VALUE。 - 虽然静态导入让代码编写相对简单,但毕竟没有完整地写出静态成员所属的类名,程序的可读性有所降低
4.File
类还提供了一些用于返回指定路径下的目录和文件的方法
-
String[] list()
:返回一个字符串数组,这些字符串代表此抽象路径名表示的目录中的文件和目录。 -
String[] list(FilenameFilter filter)
:返回一个字符串数组,这些字符串代表此抽象路径名表示的目录中,满足过滤器 filter 要求的文件和目录。 -
File[] listFiles()
:返回一个 File 对象数组,表示此当前 File 对象中的文件和目录。 -
File[] listFiles(FilenameFilter filter)
:返回一个File
对象数组,表示当前File
对象中满足过滤器filter
要求的文件和目录。