java - 文件中的错误字符由 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)的正确字符值。
谢谢!
解决方案
推荐阅读
- json - 如何使用 JSONPath 创建 JSON 对象以供 AWS Step Functions 使用?
- azure - Azure数据工厂json数据转换空值
- unix - 删除除最新目录外的所有非空目录
- xml - 解析具有多种可能类型的 XML 标记 [Rust、serde、serde-xml-rs]
- java - com.fasterxml.jackson.databind.exc.MismatchedInputException:无法反序列化 START_ARRAY 令牌中的“响应”实例
- database - 三个不同的表嵌套了 CTE 和 Join SQL 函数
- highcharts - Highcharts:如何使范围属性起作用?
- python - Pandas to_json 没有正确格式化 json 文件?
- c - 尝试在 C 中实现 k-medoids
- reactjs - “TypeError:status.map 不是函数” - 使用 useState 和 Map 的 TypeScript