java - BufferedWriter 用 MSB 1 写入字符

标签 java hex bufferedreader

writer = new BufferedWriter(new OutputStreamWriter(System.out));
char[] test = new char[1];
test[0]=(char)128;
writer.write(test,0,1);
writer.flush();

使用该命令调用; java 文件 > 输出

然后用十六进制编辑器检查“out”,我期望在文件开头得到字节 0x80,后面没有任何内容。相反,我得到 0x3F。 通过使用不同的东西(即 64)执行相同的代码,我得到了预期的十六进制 0x40。

最佳答案

BufferedWriter 是面向字符的流,因此您写入的字节会被编码为与您在文件中看到的不同的内容。使用 BufferedOutputStream 旨在处理此类二进制数据。

关于java - BufferedWriter 用 MSB 1 写入字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16097579/

相关文章:

hex - Elixir mix 自动确认

Java - 读取具有特定jvm大小的文本文件

java - 如果 BufferedReader 不为空,如何清除它 [Java/Android]

java - 以编程方式生成 BPEL 文件?

java - 在 Portlet For IBM 中上传带有响应的文件

bash - 在shell脚本中将十进制数转换为十六进制和二进制

java - 使用 Java 将十六进制转储的字符串表示形式转换为字节数组?

java - JFrame 仅在方法结束时刷新

英特尔 HD 3700 linux 的 Java 8 Swing 渲染问题

java - java中BufferReader的异常处理