首页 > 解决方案 > 文件中的错误字符由 0xFF - JAVA

问题描述

我有一个函数将二进制值转换为字符,并将这些字符写入文件。

二进制值:11100111 11111111 11111010 11100111

    String input = "11100111111111111111101011100111";

    StringBuilder sb = new StringBuilder(); 

    Arrays.stream( 
        input.split("(?<=\\G.{8})") 
    ).forEach(s -> 
        sb.append((char) Integer.parseInt(s, 2)) 
    );

    String output = sb.toString();

第一个、第三个和第四个 8 位转换是可以的,但第二个 8 位是错误的。输出为-1。我理解为什么要这样做,但我不知道如何修复我的代码以将正确的字符写入文件。

问题是:文件中的字符错误。

在我的 Eclipse 输出控制台上:çÿúç 在文件中:з?ъз

写入文件后,FileUtils.writeStringToFile(new File("c:\\Users\\FileNameToWrite.txt");我在文件中得到了这个з?ъз。这是错误的,因为 ? 标记(十六进制:3F,二进制:0011 1111)。我需要文件中二进制值(1111 1111)的正确字符值。

谢谢!

标签: javabinaryconverters

解决方案


推荐阅读