我想输出一些数据在Java中的文件,不明白为什么当我运行此代码...为什么out.write()在Java中改变int值?
try {
File file = new File("demo.txt");
BufferedWriter out = new BufferedWriter(new FileWriter(file));
int i = 127;
int j = 128;
System.out.println(Integer.toHexString(i));
System.out.println(Integer.toHexString(j));
out.write(i);
out.write(j);
out.close();
} catch (IOException e) {}
...以下是输出到控制台日志:
7f
80
但是当我用十六进制编辑器打开文件demo.txt时,我看到字节7f和3f。为什么out.write()会正确输出大多数int值(示例127),但会改变其他值(示例128)?我怎样才能将数据直接写入文件?
变化从128开始的事实应该给出一些线索,看看发生了什么; 127是用7位ASCII代表的内容的限制。 – Roadmaster 2012-02-22 15:59:33
您是否尝试过使用DataOutputStream编写二进制数据? – JProgrammer 2012-02-22 16:02:33