Java和C ++相互通信时的问题

时间:2011-03-17 21:34:22

标签: java c++

Hey Guys,我有一个C ++程序,它写了一个二进制文件 在磁盘上。然后我使用Java程序读取数字。问题 是读取的数字与写的数字不同...说,我 使用c ++写一个整数4,并在使用JAVA读取它时返回67108864  (使用readint())...我怀疑它是由于大或小的结尾。你有没有 任何解决这个问题的简单解决方案?

非常感谢!!!

1 个答案:

答案 0 :(得分:3)

Java的java.nio缓冲区允许您指定字节顺序。

请参阅http://download.oracle.com/javase/6/docs/api/java/nio/ByteBuffer.html,尤其是允许您指定字节顺序的order方法和允许您读取int的getInt方法。

使用ByteBuffer读取文件,请执行以下操作:

ByteBuffer buffer = new RandomAccessFile(myFile, "r")
    .getChannel.map(MapMode.READ, offset, length);

记得在完成后关闭它。