2

有没有一种简单的方法可以将从流中读取的字节数组转换为双精度值?

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

缓冲区 => 双倍?

你能形象地解释一下 InputStream.read(byte[] b) 的工作原理吗?

4

3 回答 3

3

如果你经常做这样的操作,也许使用DataInputStream会更好,它提供了一组操作,比如 readDouble 等。

DataInputStream input = new DataInputStream(serialPort.getInputStream());
double d = input.readDouble();
于 2013-03-02T20:19:43.957 回答
2

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

并且,您可以尝试使用DataInputStream来读取 Double、Float、Integer 等。您可以使用以下方法实例化 DataInputStream:

DataInputStream input = new DataInputStream(YOUR_INPUT_STREAM);
于 2013-03-02T20:19:50.527 回答
0

尝试使用 DataInputStream ( javadoc ) 包装您的 InputStream 对象并使用 readDouble 方法

于 2013-03-02T20:26:30.723 回答