2013-12-18 64 views
0

不熟悉java IO。下面是一个问题:一个字节流,其中包含一系列介于-1和1之间的浮点数。应该如何读取输入?java读取浮点数的字节流

我已经试过这样:

BufferedReader br=new BufferedReader(new ByteInputStream(buf, length)); 

但得到的不知道。

谢谢。

+0

存储在文本表示的数字(即0.24354)或二进制?使用哪种数字格式? – Henry

回答

2

你可以从这样的缓冲区中读取一个float:不需要

try(DataInputStream dis = new DataInputStream(new ByteArrayInputStream(buf, 0, len))){ 
    // ... 
    float v = dis.readFloat(); 
    // ... 
} 

BufferedReader,因为这人会从缓冲区中读取。

如果你的花车是从即C++应用程序来了,你可以阅读整数和使用Float.intBitsToFloat()将它们转换成Java浮动:Best way to serialize a Float in java to be read by C++ app?

+0

谢谢。 (DataInputStream dis = new DataInputStream(socket.getInputStream())){ // ... float v = dis.readFloat();如果输入来自套接字客户端,那么该怎么办? // ... } – lulyon

+0

是的,这应该工作。 –

+0

谢谢,非常有帮助。 – lulyon