我正在研究java中的项目,我一直在尝试将字节数组写入文件(作为十六进制值)。我已经尝试了所有我能想到的东西,但它似乎仍然写成字符串而不是字节(十六进制)。奇怪的是,我能够以字节格式将其他值输出到同一个文件中(尽管这些值是'int'开头)
我正在使用RandomAccessFile来编写值,并尝试过FileOutputStream和其他但具有相同结果的文件。我一直在使用以下方法写入文件:
http://docs.oracle.com/javase/7/docs/api/java/io/RandomAccessFile.html#write(byte[])
有人可以对此有所了解吗?
[UPDATE]
for (int x = 0; x <ascii.length; x++) {
System.out.println(ascii[x]);
writer.write(ascii[x]);
}
此循环将正确的值输出到屏幕,但如果我尝试将它们写入文件,则将它们写为ASCII ...
答案 0 :(得分:1)
文件由字节组成。 HEX只是这些字节的表示。它对底层存储没有意义。
使用HEX编辑器,您可以将文件中的字节看作HEX值。使用文本编辑器,您可以将文件中的字节看作人类可读的字符(取决于内容和某些字符编码)。
换句话说,你不要将HEX值写入文件,除非你的意思是它们的表示,它将是从HEX值的String
表示生成的字节。