无法将字节数组写入文件为十六进制

时间:2014-08-02 19:04:09

标签: java byte

我正在研究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 ...

1 个答案:

答案 0 :(得分:1)

文件由字节组成。 HEX只是这些字节的表示。它对底层存储没有意义。

使用HEX编辑器,您可以将文件中的字节看作HEX值。使用文本编辑器,您可以将文件中的字节看作人类可读的字符(取决于内容和某些字符编码)。

换句话说,你不要将HEX值写入文件,除非你的意思是它们的表示,它将是从HEX值的String表示生成的字节。