Java 文件操作
File 类用于对文件和目录执行各种操作。在本教程中,我们将通过示例了解 Java File 类及其各种操作。
在本教程中,我们将通过示例了解 Java File 类及其各种操作。
java.io
包的 File
类用于对文件和目录执行各种操作。还有另一个 java.nio
的包也可用于处理文件。但是,在本教程中,我们将重点介绍 java.io
包。
文件和目录
文件是在存储中保存数据内容的单个实体,目录则是多个文件的集合。目录中可以包含子目录。
创建 Java 文件对象
File
类位于 java.io
包。要创建一个文件对象,只需要在 File
类的构造方法中传入文件路径即可。如下:
File file = new File(String pathName);
在这里,我们创建了一个名为 file
的文件对象,该对象可用于处理文件和目录。
! 注意:在 Java 中,创建文件对象并不意味着创建文件。
Java 文件操作方法
操作 | 对应的方法 | 所属类 |
---|---|---|
创建文件 | createNewFile() |
java.io.File |
读取文件 | read() |
java.io.FileReader |
写入文件 | write() |
java.io.FileWriter |
删除文件 | delete() |
java.io.File |
创建文件
我们可以使用 createNewFile()
方法创建一个新文件。它返回一个布尔值:
- 如果创建了一个新文件,返回
true
。 - 如果文件已存在,返回
false
。
示例:创建一个新文件
import java.io.File;
public class Main {
public static void main(String[] args) {
File file = new File("newFile.txt");
try {
// 尝试创建文件
boolean value = file.createNewFile();
if (value) {
System.out.println("The new file is created.");
}
else {
System.out.println("The file already exists.");
}
} catch(Exception e) {
e.getStackTrace();
}
}
}
在上面的例子中,我们创建了一个名为 file
的文件对象,文件对象连接了指定的文件路径。
如果当前位置中不存在 newFile.txt
文件,则会创建该文件并显示以下消息:
The new file is created.
但是,如果已经存在 newFile.txt
文件,我们将看到以下消息:
The file already exists.
读取文件
要从文件中读取数据,我们可以使用 InputStream
类的子类或 Reader
类的子类。
示例:使用 FileReader 读取文件
假设我们有一个名为 input.txt
的文件,其内容如下。
This is a line of text inside the file.
现在让我们尝试使用 FileReader
读取文件中的内容。
import java.io.FileReader;
public class Main {
public static void main(String[] args) {
char[] array = new char[100];
try {
// 创建 Reader 对象
FileReader input = new FileReader("input.txt");
// 读取字符
input.read(array);
System.out.println("Data in the file: ");
System.out.println(array);
// 关闭
input.close();
} catch(Exception e) {
e.getStackTrace();
}
}
}
输出
Data in the file: This is a line of text inside the file.
在上面的例子中,我们创建了一个名为 input
的 FileReader 对象,它连接了 input.txt
文件。如下:
FileReader input = new FileReader("input.txt");
为了从 input.txt
文件中读取数据,我们使用了 read()
方法。
写入文件
要将数据写入文件,我们可以使用 OutputStream
类的子类或 Writer
类的子类。
示例:使用 FileWriter 写入文件
import java.io.FileWriter;
class Main {
public static void main(String args[]) {
String data = "This is the data in the output file";
try {
// 创建 Writer 对象
FileWriter output = new FileWriter("output.txt");
// 写字符串到文件中
output.write(data);
System.out.println("Data is written to the file.");
// 关闭
output.close();
} catch (Exception e) {
e.getStackTrace();
}
}
}
输出
Data is written to the file.
在上面的示例中,我们使用了 write()
方法将数据写入了文件。
这里当我们运行程序后, output.txt
文件中内容如下:
This is the data in the output file.
删除文件
我们可以使用 delete()
方法删除指定的文件或目录。它返回一个布尔值:
- 如果文件被删除,返回
true
。 - 如果文件不存在,返回
false
。
!! 注意:如果要删除目录,此方法只能删除空目录。
示例:删除文件
import java.io.File;
public class Main {
public static void main(String[] args) {
// creates a file object
File file = new File("file.txt");
// deletes the file
boolean value = file.delete();
if(value) {
System.out.println("The File is deleted.");
} else {
System.out.println("The File is not deleted.");
}
}
}
输出
The File is deleted.
在上面的例子中,我们创建了一个名为 file
的文件对象,它连接了指定的文件。
这里我们使用了 delete()
方法删除对象指定文件。