Java用BufferedReader读取文件中时总是乱码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java用BufferedReader读取文件中时总是乱码相关的知识,希望对你有一定的参考价值。

@Test
public void FileInput() throws IOException 
    File f = new File("io.txt");
    FileInputStream fip = new FileInputStream(f);
    // 构建InputStreamReader对象,编码与写入相同
    InputStreamReader reader = new InputStreamReader(fip, "UTF-8");
    StringBuffer stringBuffer = new StringBuffer();
    while (reader.ready()) 
        // 转成char加到StringBuffer对象中
        stringBuffer.append((char) reader.read());
    
    System.out.println(stringBuffer.toString());
    reader.close();
    fip.close();

参考技术A 把文件中的文字编码改成UTF-8 参考技术B 固定一下 UTF-8 参考技术C 转换前需要强制类型

Java 解決BufferedReader读取UTF-8文件中文乱码

链接:https://blog.csdn.net/maxracer/article/details/5436580

(侵删)

读取txt文件乱码:
BufferedReader read = new BufferedReader(new FileReader(new File(filename)));


解决办法:
InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "UTF-8");
BufferedReader read = new BufferedReader(isr);


因为InputStreamReader和BufferedReader都继承自Reader,而BufferedReader的构造器又是Reader.

以上是关于Java用BufferedReader读取文件中时总是乱码的主要内容,如果未能解决你的问题,请参考以下文章

java怎样读取本地文件夹下的文件

如何使用 Java 的 BufferedReader 与 InputStreamReader 读取文件?

Java,为啥从 MappedByteBuffer 读取比从 BufferedReader 读取慢

java中 BufferedReader类读取文件时

java从键盘接受字符串行BufferedReader(InputStreamReader(System.in))这样用BufferedReader对象读取行

如何在 Java 中使用 BufferedReader 读取文件末尾 (EOF)?