【问题标题】:java read a byte stream of float numberjava读取浮点数的字节流
【发布时间】:2013-12-18 07:45:59
【问题描述】:

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

我试过了:

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

但不知道。

谢谢。

【问题讨论】:

  • 数字是以文本表示形式(即 0.24354)还是二进制形式存储的?使用哪种数字格式?

标签: java io


【解决方案1】:

您可以像这样从缓冲区中读取浮点数:

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?

【讨论】:

  • 谢谢。如果输入来自套接字客户端怎么办?try(DataInputStream dis = new DataInputStream(socket.getInputStream())){ // ... float v = dis.readFloat(); // ... }
  • 谢谢,很有帮助。
猜你喜欢
  • 1970-01-01
  • 2011-05-29
  • 1970-01-01
  • 1970-01-01
  • 2011-07-20
  • 1970-01-01
  • 2020-07-29
  • 1970-01-01
  • 2014-12-19
相关资源
最近更新 更多