将1字节char数组写入C ++创建的二进制文件的好方法

时间:2013-11-27 16:09:07

标签: java

我需要解析由 C ++ 创建的二进制文件,并在该文件中覆盖一个4字符长字符数组,例如将ABCD的原始字符数组更改为WXYZ 。

我确切地知道该char数组的字节位置。我尝试了 RandomAccessFile ,这让我很容易就到了这个位置。但我现在不能让其他人为我工作。

RandomAccessFile是正确的方法吗?

我知道我必须从 2 bytes char 一个字节char 进行一些转换。

有人有一个很好的方法吗?

2 个答案:

答案 0 :(得分:1)

RandomAccessFile没问题。正如您已经想到的那样,在C ++中char是单个字节,而Java使用UTF-16

最简单的选择可能是在代码中使用byte[4]来表示4个字符的ASCII字符串。

答案 1 :(得分:1)

好的:总是尝试使用JavaDoc RandomAccessFile

long position = ...;
byte[] bytes = new byte[] { (byte)'W', ... };
raf.seek(position);
raf.write(bytes);