通常在软件开发项目中,长期保存数据的办法主要有两类:一类是使用数据库保存,;另外一类就是把数据保存在文件中——使用 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 的书写,编写代码相对简单。在使用静态导入的时候,需要注意以下几点

  1. 静态导入在代码中必须写 import static
  2. 提防静态导入冲突。例如,如果同时对 Integer 类和 Long 类执行了静态导入,引用 MAX_VALUE 属性将导致一个编译器错误,因为 Integer 类和 Long 类都有一个 MAX_VALUE 常量,在使用时编译器就无法区分重名的 MAX_VALUE。
  3. 虽然静态导入让代码编写相对简单,但毕竟没有完整地写出静态成员所属的类名,程序的可读性有所降低

4.File 类还提供了一些用于返回指定路径下的目录和文件的方法

  • String[] list():返回一个字符串数组,这些字符串代表此抽象路径名表示的目录中的文件和目录。
  • String[] list(FilenameFilter filter):返回一个字符串数组,这些字符串代表此抽象路径名表示的目录中,满足过滤器 filter 要求的文件和目录。
  • File[] listFiles():返回一个 File 对象数组,表示此当前 File 对象中的文件和目录。
  • File[] listFiles(FilenameFilter filter):返回一个 File 对象数组,表示当前 File 对象中满足过滤器 filter 要求的文件和目录。