2013-03-02 120 views
2

是否有一种简单的方法将从流中读取的字节数组转换为双精度值?如何将InputStream.read()转换为double?

InputStream input = serialPort.getInputStream(); 
while(true) { 
    byte[] buffer = new byte[ 8 ]; 
    len = input.read(buffer); 
} 

buffer => double?

你能解释一下我的比喻如何InputStream.read(字节[] B)作品?

+0

难道你想换行的InputStream到另一个流是更容易使用:可以使用实例化一个DataInputStream?也许是一个由BufferedInputStream包装的DataInputStream? – 2013-03-02 20:19:52

回答

3

如果你做这样的操作有很多,也许这是最好使用DataInputStream,它提供了一套操作,像的readDouble等。

DataInputStream input = new DataInputStream(serialPort.getInputStream()); 
double d = input.readDouble(); 
2

InputStream.read(byte[] b)将读取下一个字节为b参数。

而且,你可以尝试使用DataInputStream读双,浮法,整数,和其他人。

DataInputStream input = new DataInputStream(YOUR_INPUT_STREAM); 
0

尝试换用DataInputStream所(javadoc)您的InputStream对象和使用的readDouble方法