- 主题:用fwrite写入的float怎么用java读出来?
写入的时候在c++里,用fwrite, 类似于
fwrite(&y, sizeof(float), 1, fp);
现在想用java读出来,但读不正确的数据出来
我主要尝试了两种方法,
一种是InputStream下面直接用read(bytep[])的方式, 能读出内容, 但和写入的数据对
不上
一种是InputStream下面,再用DataInputStream, 不管是read(), readFloat, 还是read
Double()都读不出正确数据
请指点一下?
--
FROM 123.119.237.*
Java 有个 ByteBuffer 可以读二进制数据
ByteBuffer buffer = ByteBuffer.wrap(headerBytes);
buffer.order(ByteOrder.BIG_ENDIAN);
PacketHeader header = new PacketHeader();
header.packetSize = buffer.getInt();
header.channelNumber = buffer.getInt();
注意你写入的大小端和读取的大小端。
【 在 fishingriver 的大作中提到: 】
: 写入的时候在c++里,用fwrite, 类似于
: fwrite(&y, sizeof(float), 1, fp);
: 现在想用java读出来,但读不正确的数据出来
: ...................
--
FROM 120.33.8.*
谢谢!
【 在 hgoldfish 的大作中提到: 】
: Java 有个 ByteBuffer 可以读二进制数据
: ByteBuffer buffer = ByteBuffer.wrap(headerBytes);
: buffer.order(ByteOrder.BIG_ENDIAN);
: ...................
--
FROM 123.119.237.*
jni搞一下呢?
【 在 fishingriver 的大作中提到: 】
: 写入的时候在c++里,用fwrite, 类似于
: fwrite(&y, sizeof(float), 1, fp);
: 现在想用java读出来,但读不正确的数据出来
: ...................
--
FROM 47.241.55.*