我具有将二进制值转换为字符并将这些字符写入文件的功能。
二进制值: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)。
谢谢!