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/