Java IO 操作主要指的是通过 Java 进行输入、输出操作,Java 中所有操作类都存放在 java.io 包中,用户在使用时需要将操作导入此包。
所有的 10 操作都在 java.io 包中进行定义,而且整个java.io 包实际上就是五个类和一个接口。五个类:File、InputStream、OutputStream、Reader、Wirter;一个接口:Serializable。
在学习 Java IO 操作之前,要清楚地掌握对象多态性的概念及特点,而对象多态性中最为核心的概念就是:如果抽象类或接口中的抽象方法被子类覆写了,那么实例化这个子类时,所调用的方法一定是被覆写过的方法,即方法名称以父类为标准,而具体的实现需要依靠子类完成。
文件操作类:File
在 java.io 包中,如果要进行文件自身的操作(例如:创建、删除等),只能依靠 java.io.File 类完File 类常用操作方法如图所示。
File 类中提供的方法并不涉及文件的具体内容,只是针对文件本身的操作。
提示:注意方法的返回值。
可以发现在 File 类中的length()及 lastModified()方法返回的数据类型都是 long型,这是因为long数据类型可以描述内存(或文件)大小、日期时间数字。
例:文件基本操作。任意给定一个文件路径,如果文件不存在则创建一个新的文件,如果文
件存在则将文件删除。文件操作流程如图所示。
import java.io.File;
public class FileDemo {
public static void main(String[] args) throws Exception {
File file = new File("D:\\fileName.txt");
if (file.exists()){
file.delete();
} else {
System.out.println(file.createNewFile());
}
}
}本程序首先定义了文件的操作路径“D:\\fileName.txt"(“\\”是 “\”的转义字符,也是路径分隔符),然后利用exists()方法判断该路径的文件是否存在,如果存在则使用delete()删除,否则使用createNewFile()创建新文件。
注意:关于路径分隔符问题。
在操作系统中如果要定义路径则一定会存在路径分隔符的问题,因为程序运行在Windows 系统下,所以范例的程序中使用了“\\”(本质为“\”)作为了分隔符。但是如果程序运行在 Linux 系统中,则路径分隔符为“/”。而 Java 本身属于跨平台的操作系统,总不能针对每一个不同的操作系统手工去修改路径分隔符,这样的操作实在是不智能。因此在 java.io.File 类里面提供有一个路径分隔符常量:public static final Stringseparator;利用此常量可以在不同的操作系统中自动转化为适合于该操作系统的路径分隔符。所以在实际开发中,如果要定义File 类对象往往会使用如下形式的操作代码。
File file = new File("D:\\fileName.txt");// 设置文件的路径为了保证代码开发的严格性,在使用文件操作中都会利用此常量定义路径分隔符同时读者也会发现一个问题,虽然 separator 是一个常量,但是这个常量并没有遵守字母全部大写的原则,而造成这样的问题是在JDK1.0时常量与变量的定义规则相同,而这一问题也属于历史遗留问题。
另外需要提醒读者的是,在进行 java.io 操作文件的过程中,会出现延迟情况。因为Java 程序是通过 JVM 间接地调用操作系统的文件处理函数进行的文件处理操作,所以中间会出现延迟情况。
下一节我们具体介绍创建带路径的文件、取得文件或目录的信息以及如何列出文件目录信息