- 主题:用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.*