在Java中,逐行读取文本文件时遇到中文乱码问题,通常是因为文件编码与读取时使用的编码不一致所导致的。为了解决这个问题,你可以在读取文件时指定正确的字符编码。对于中文文本,常见的编码有UTF-8、GBK等。
以下是一个使用`BufferedReader`逐行读取文本文件并指定UTF-8编码的示例代码:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFileWithEncoding {
public static void main(String[] args) {
String filePath = "yourfile.txt"; // 替换为你的文件路径
try (BufferedReader reader = new BufferedReader(new FileReader(filePath, "UTF-8"))) { // 指定UTF-8编码
String line;
while ((line = reader.readLine()) != null) {
// 处理每一行
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
注意:
- `FileReader`的构造函数可以接收一个字符编码作为第二个参数,这样就可以确保在读取文件时使用了正确的编码。
- 如果你不确定文件的编码,可以尝试常见的编码如UTF-8或GBK,看看哪个能正确显示中文。
- 使用`try-with-resources`语句可以自动关闭`BufferedReader`,这是一种更简洁且资源友好的方式来处理资源。
如果你知道文件是以GBK编码的,只需将`"UTF-8"`替换为`"GBK"`即可。
new BufferedReader(new FileReader(filePath, "GBK"))