在使用 Java 编程中,有时会碰到文件编码格式转换的需求。比如,有一个 UTF-8 编码格式的文件,而后续处理需要该文件为 GBK 编码格式,这时就需要进行文件编码的转换。本示例的目的就是实现将 UTF-8 编码的文件转换为 GBK 编码的文件。
示例代码:
package com.hxstrive.java_io.example;
import java.io.*;
public class EncodingConversionExample {
public static void main(String[] args) {
String inputFilePath = "input_utf8.txt";
String outputFilePath = "output_gbk.txt";
// 利用 java7 的 try-with-resource 自动关闭资源
// 且借助 InputStreamReader 和 OutputStreamWriter 来指定预期的编码格式
try (BufferedReader reader = new BufferedReader(
new InputStreamReader(new FileInputStream(inputFilePath), "UTF-8"));
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(outputFilePath), "GBK"))) {
// 逐行读取文件内容,写入到新的文件中
String line;
while ((line = reader.readLine()) != null) {
writer.write(line);
writer.newLine();
}
System.out.println("文件编码转换成功!");
} catch (IOException e) {
System.err.println("文件编码转换过程中出现错误:" + e.getMessage());
}
}
}准备 input_utf8.txt 文件,如下图:

运行后:

从上图,成功将文件转换成 GBK 格式,要转换成其他格式,操作类似。