欢迎访问宙启技术站
智能推送

如何使用Java中的File类读取和写入文本文件?

发布时间:2023-06-06 08:37:19

Java中的File类是用于表示本地计算机中的文件和目录路径的抽象表示。它提供了许多方法来操作文件和目录,包括创建、删除、重命名、移动、复制、检查文件属性、获取文件名等。在Java中,使用File类来读取和写入文本文件非常简单。本文将基于Java 8来介绍如何使用File类读取和写入文本文件。

1. 读取文本文件

File类提供了一个方法叫做readText(),使用这个方法可以读取文本文件的内容。假设我们有一个名为“test.txt”的文本文件,该文件的内容如下:

Hello world!
This is a test file.

这里是读取该文本文件的示例代码:

import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;

public class ReadTextFile {
    public static void main(String[] args) throws IOException {
        File file = new File("test.txt");
        String content = Files.readString(file.toPath(), StandardCharsets.UTF_8);
        System.out.println(content);
    }
}

这里使用Files类的readString()方法读取文件的内容,然后将文件内容作为字符串打印输出。

2. 写入文本文件

File类提供了一个方法叫做writeText(),使用这个方法可以向文本文件中写入内容。假设我们要将一个字符串写入文本文件中,可以使用如下代码:

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class WriteTextFile {
    public static void main(String[] args) throws IOException {
        File file = new File("test.txt");
        FileWriter writer = new FileWriter(file);
        String content = "Hello world! This is a test file.";
        writer.write(content);
        writer.close();
        System.out.println("Text file has been written.");
    }
}

注意,这里使用了FileWriter类来写入文件。我们需要先创建一个FileWriter对象,然后通过它来调用write()方法写入文件。最后,要保证关闭FileWriter对象,这样写入的内容才会被真正的写入文件中。

3. 读取和写入文本文件并修改它

File类的读取和写入方法也可以结合使用,来完成读取文本文件、修改它并将修改后的内容写回到原文件的操作。考虑下面这个例子,我们希望读取一个文本文件,将其中的“Hello”替换为“Hi”,然后将修改后的内容写回到原文本文件中。

import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.StandardOpenOption;

public class ModifyTextFile {
    public static void main(String[] args) throws IOException {
        File file = new File("test.txt");
        String content = Files.readString(file.toPath(), StandardCharsets.UTF_8);

        content = content.replaceAll("Hello", "Hi");
        Files.writeString(file.toPath(), content, StandardCharsets.UTF_8, StandardOpenOption.WRITE);

        System.out.println("Text file has been modified.");
    }
}

这里使用了Java 11中的Files类的writeString()方法将修改后的内容写回到原文本文件中。我们可以在参数列表中指定打开文件的方式为“WRITE”来覆盖原来的内容。当然,还可以使用其他选项,如APPEND(追加到文件的末尾)等。

总结:

Java的File类提供了许多方法来读取和写入文本文件。可以使用Files类的readString()和writeString()方法来读取和写入文本文件的内容。使用FileWriter类可以直接将字符串写入文件中,使用readString()方法可以将文件的内容读入字符串中。如果需要在读取文件之后修改它,可以使用字符串的replaceAll()方法来对内容进行修改,然后使用writeString()方法将内容写回文件中。为了保证文件的格式和编码一致,我们需要指定读取或写入文件时的字符编码。