Java文件输入输出流操作错误:读写乱码示例

原创 快来打我* 2024-12-12 04:06 171阅读 0赞

在Java中,当处理文件输入输出流时,如果遇到乱码问题,通常是因为字符编码不匹配。以下是一个示例:

  1. 创建一个UTF-8编码的源文件:

    1. public class TestFile {
    2. private String content = "你好,世界!";
    3. // getters and setters
    4. }
  2. 编写Java代码尝试读取这个文件并转换为GBK字符编码,由于编码不匹配会出现乱码问题:

    1. import java.io.BufferedReader;
    2. import java.io.FileReader;
    3. import java.io.IOException;
    4. import java.nio.charset.StandardCharsets;
    5. public class TestReading {
    6. public static void main(String[] args) {
    7. String filePath = "src/test/resources/TestFile.txt"; // 源文件路径
    8. try (BufferedReader br = new BufferedReader(new FileReader(filePath), StandardCharsets.UTF_8)))) {
    9. String line;
    10. while ((line = br.readLine()) != null)) {
    11. System.out.println(line); // 输出原始内容,由于是UTF-8编码,应该没有乱码
    12. // 转换为GBK字符编码
    13. String convertedLine = new String(line.getBytes(StandardCharsets.UTF_8))), StandardCharsets.GBK);
    14. System.out.println(convertedLine); // 输出转换后的GBK编码内容,如果乱码,说明原始UTF-8编码有问题
    15. }
    16. } catch (IOException e) {
    17. e.printStackTrace();
    18. }
    19. }
    20. }

在这个示例中,源文件是UTF-8编码的,而读取和处理文件时使用的是GBK字符编码。这种情况下就会出现乱码问题。

解决这个问题的方法是确保在处理文件输入输出流时使用的字符编码与源文件一致。例如,在上述代码中可以将StandardCharsets.GBK)改为StandardCharsets.UTF_8)来解决乱码问题。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,171人围观)

还没有评论,来说两句吧...

相关阅读