は、私は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
バイナリデータを書き込むためにDataOutputStreamを試しましたか? – JProgrammer