Java如何从文件中读取中文

Java如何从文件中读取中文

作者:Joshua Lee发布时间:2026-02-26阅读时长:0 分钟阅读次数:12

用户关注问题

Q
为什么读取中文文件时出现乱码?

使用Java读取包含中文的文件时,经常会遇到文字显示为乱码的情况,是什么原因导致的?

A

编码格式不匹配导致乱码

乱码问题通常是因为读取文件时使用的编码格式与文件实际编码不一致。中文文件常见的编码有UTF-8和GBK,若代码中未指定正确编码,Java默认使用平台编码,可能导致乱码。确保在读取时明确指定文件的编码格式可以避免乱码问题。

Q
如何在Java中正确读取UTF-8编码的中文文件?

我有一个UTF-8编码的中文文本文件,如何用Java代码正确读取并显示中文内容?

A

使用InputStreamReader并指定UTF-8编码

可以通过InputStreamReader结合FileInputStream来读取文件,同时在创建InputStreamReader对象时指定字符编码为UTF-8。例如:

BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "UTF-8"));
String line;
while ((line = reader.readLine()) != null) {
    System.out.println(line);
}
reader.close();

这样就能正确读取和显示UTF-8编码的中文内容。

Q
Java中如何处理不同编码格式的中文文件读取?

如果遇到编码格式不是UTF-8的中文文件,如GBK,Java读取需要注意什么?

A

根据文件实际编码选择对应字符集进行读取

读取文件时,需要了解文件的实际编码。如果是GBK编码,可以在InputStreamReader中指定"GBK"作为字符集。例如:

BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "GBK"));

这样就能正确读取GBK编码的中文内容。为了避免编码问题,建议确认文件编码后再进行读取操作。