我需要解析由C++创建二进制文件并在该文件覆盖一个4炭长char数组,例如改变创建二进制文件的一个好方法的ABCD原始字符数组到WXYZ。写一个1个字节的字符数组到由C++
我完全知道该char数组字节的位置。我尝试了RandomAccessFile,这让我轻松地去找位置。但我现在无法为其他人工作。
RandomAccessFile是一个正确的方法吗?
我知道我必须做一些转换,从2个字节char到一个字节字符。
任何人都有一个很好的方法来做到这一点?
我需要解析由C++创建二进制文件并在该文件覆盖一个4炭长char数组,例如改变创建二进制文件的一个好方法的ABCD原始字符数组到WXYZ。写一个1个字节的字符数组到由C++
我完全知道该char数组字节的位置。我尝试了RandomAccessFile,这让我轻松地去找位置。但我现在无法为其他人工作。
RandomAccessFile是一个正确的方法吗?
我知道我必须做一些转换,从2个字节char到一个字节字符。
任何人都有一个很好的方法来做到这一点?
细:总是尝试JavaDoc RandomAccessFile。
long position = ...;
byte[] bytes = new byte[] { (byte)'W', ... };
raf.seek(position);
raf.write(bytes);
RandomAccessFile
很好。正如你已经想到的那样,在C++ char
中是一个字节,而Java使用的是UTF-16。
最简单的选择可能是在代码中使用byte[4]
来表示4个字符的ASCII字符串。