Java文件操作
1. 文件的概念
- 文件是由创建者定义的保存在磁盘中的一组信息,通常由程序与数据组成。Java在高级编程语言层面为不同操作系统的文件操作提供了一套相同的api(File类)
- 文件在java中以File对象的形式存在,通过使用File对象中的方法实现对系统文件的操作
2. java 为文件操作提供的api
- java提供了一套可以识别不同文件系统下文件路径(不同的文件系统对文件路径的标识有些许差异,比如:分隔符等)的api,并能够对其中的目录和文件进行操作
- 文件操作常用方法
2.1创建一个文件
- java 文件类的实质是一个跨平台的抽象路径,只起到定位的作用,必须与磁盘中的具体文件关联才有实际的意义(即使用该类提供的方法对文件进行操作)。所以,使用File类构造器创建一个文件对象后,如果磁盘中不存在该对象对应的文件/目录,还需要使用createNewFile()/mkdir()/mkdirs()方法创建具体的文件/目录
2.1.1 在内存中创建一个文件对象
- 使用File类构造器即可在内存中创建一个文件对象,现在只是在内存中创建了一个抽象文件路径,该路径可能没有对应的文件
//根据父文件对象和子文件路径名称创建文件对象
File(File parent, String child);
//根据文件路径名创建文件对象
File(String pathname);
//根据父文件路径名和子文件路径名创建文件对象
File(String parent, String child);
//根据统一标识符URI创建文件对象
File(URI uri);
例如创建一个 D:\fileDetail\test.txt 路径对应的File类,可以有以下四种方式
//在内存中创建File类的对象,注意:分隔符'\'必须使用转义符'\'修饰,
// 或者使用File类的静态属性separator获取分隔符
//使用File(String pathname)构造器
File file = new File("D:\\fileDetail" + File.separator + "test.txt");
//使用File(File parent, String child)构造器
File file0 = new File("D:\\fileDetail")
File file = new File(file0, "test.txt");
//使用File(String parent, String child)构造器
File file = new File("D:\\FileDetail", "test.txt");
2.1.2 在磁盘中创建于文件对象关联的文件或目录
- 打开D:可以发现,并没有生成 D:\fileDetail 文件。这说明File构造器并不会对磁盘进行修改。那么要在磁盘上生成D:\fileDetail\test.txt 文件还需要进行其他的操作。并且在Linux/Unix文件系统中,文件后缀没有实际意义
- 创建文件/目录的方法
//创建一个不存在于路径的文件,路径必须存在
public boolean createNewFile();
//创建一个不存在于路径的目录,路径必须存在
public boolean mkdir();
//创建一组层层嵌套的目录
public boolean mkdirs();
- 如果路径中的文件存在,则可以直接进行文件操作;如果不存在,则需要使用上述的方法创建目录/文件。以D:\fileDetail\test.txt 为例:
//如果D:\fileDetail目录不存在,那么必须使用mkdir()创建目录,如果目录有多层那么得使用mkdirs()创建多层目录
File file0 = new File("D:\fileDetail");
file0.mkdir();
file1.createNewFile();