Java中的文件操作主要涉及到几个核心类和方法,这些类和方法共同支持对文件系统的读取、写入、创建、删除、重命名等操作。以下是对这些类和方法的详细归纳:
一、核心类
-
File类
- 作用:File类是java.io包下表示文件和目录路径名的抽象表示形式。File类本身并不表示文件的内容,而是文件或目录在磁盘上的路径名。
- 常用方法:
createNewFile()
:当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。delete()
:删除此抽象路径名表示的文件或目录。exists()
:测试此抽象路径名表示的文件或目录是否存在。isDirectory()
:测试此抽象路径名表示的文件是否是一个目录。isFile()
:测试此抽象路径名表示的文件是否是一个标准文件。length()
:返回由此抽象路径名表示的文件的长度。list()
:返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。mkdir()
:创建此抽象路径名指定的目录。mkdirs()
:创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。renameTo(File dest)
:重新命名此抽象路径名表示的文件。
-
FileInputStream与FileOutputStream类
- 作用:这两个类分别用于从文件读取数据和向文件写入数据。它们属于字节流,适用于所有类型的二进制文件。
- 常用方法:
read()
:从输入流中读取下一个数据字节。write(int b)
:将指定的字节写入此文件输出流中的当前位置。write(byte[] b)
:将 b.length 个字节从指定字节数组写入此文件输出流中。
-
FileReader与FileWriter类
- 作用:这两个类分别用于读取字符输入流和写入字符输出流,它们是对FileInputStream和FileOutputStream的包装,提供了按字符读取和写入文件的能力。
- 常用方法:
read()
:读取单个字符。read(char[] cbuf, int off, int len)
:将字符读入字符数组。write(int c)
:写入单个字符。write(char[] cbuf, int off, int len)
:写入字符数组的一部分。
-
BufferedReader与BufferedWriter类
- 作用:这两个类分别提供缓冲的字符输入和输出。它们是对FileReader和FileWriter的进一步封装,提高了读取和写入文件的效率。
- 常用方法:
readLine()
:读取一个文本行。write(String s, int off, int len)
:写入字符串的某一部分。newLine()
:写入一个行分隔符。
-
FileChannel类(NIO)
- 作用:FileChannel是一个连接到文件的通道,可以用于读取、写入、映射和操作文件。它提供了更加高效和灵活的文件I/O操作方式。
- 常用方法:
read(ByteBuffer dst)
:从通道中读取数据到缓冲区中。write(ByteBuffer src)
:将缓冲区中的数据写入通道。size()
:返回此通道的文件部分的大小。
二、示例
以下是一个简单的示例,展示如何使用File类创建和删除文件:
import java.io.File;
public class FileExample {
public static void main(String[] args) {
// 创建File对象
File file = new File("example.txt");
// 尝试创建文件
if (!file.exists()) {
try {
file.createNewFile();
System.out.println("文件创建成功!");
} catch (Exception e) {
e.printStackTrace();
}
}
// 尝试删除文件
if (file.exists()) {
boolean deleted = file.delete();
if (deleted) {
System.out.println("文件删除成功!");
} else {
System.out.println("文件删除失败!");
}
}
}
}
总结
Java中的文件操作通过多个类和方法实现,包括File类用于表示文件和目录的路径名,FileInputStream、FileOutputStream、FileReader、FileWriter等类用于文件的读写操作,以及BufferedReader、BufferedWriter等类提供缓冲的字符输入和输出。此外