java按指定编码写入和读取文件内容的类分享


下面是一个Java类示例,该类提供了按指定编码写入和读取文件内容的功能。这个类使用了`java.nio.file.Files`和`java.nio.charset.StandardCharsets`(或者你可以自定义`Charset`来指定编码)来实现这一功能。


import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;

public class FileUtil {

    /**
     * 按指定编码写入文件内容
     *
     * @param filePath 文件路径
     * @param content  要写入的内容
     * @param charset  字符编码
     * @throws IOException 如果写入过程中发生错误
     */
    public static void writeFile(String filePath, String content, Charset charset) throws IOException {
        Files.write(Paths.get(filePath), content.getBytes(charset));
    }

    /**
     * 按指定编码读取文件内容
     *
     * @param filePath 文件路径
     * @param charset  字符编码
     * @return 文件内容列表,每行一个字符串
     * @throws IOException 如果读取过程中发生错误
     */
    public static List<String> readFile(String filePath, Charset charset) throws IOException {
        return Files.readAllLines(Paths.get(filePath), charset);
    }

    // 示例使用
    public static void main(String[] args) {
        String filePath = "example.txt";
        String content = "Hello, World!";
        Charset charset = Charset.forName("UTF-8"); // 或者使用StandardCharsets.UTF_8

        try {
            // 写入文件
            writeFile(filePath, content, charset);

            // 读取文件
            List<String> fileContent = readFile(filePath, charset);
            for (String line : fileContent) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

注意:

- 这个类中的`writeFile`方法直接将字符串转换为字节并写入文件,这可能在处理非文本文件或需要更精细控制写入过程时不是最佳选择。但对于大多数文本文件写入场景,这种方法是足够的。

- `readFile`方法按行读取文件内容,并返回一个包含所有行的`List`。这对于处理文本文件非常方便。

- 在`main`方法中,我提供了一个简单的示例来展示如何使用这些方法。你可以根据需要修改文件路径、内容和编码。