【问题标题】:Java byte array to Javascript typed arrayJava字节数组到Javascript类型数组
【发布时间】:2015-10-15 00:25:32
【问题描述】:

我正在尝试通过 Websocket binaryType 协议将一些原始数据从 Java Servlet 发送到 JavaScript 我阅读了有关 JavaScript 上的字节缓冲区、类型化数组和数据视图的所有内容,但我仍然认为我错过了图片

我的问题是如何将 8 个字节的数组转换为 JavaScript 数字?

我有以下字节数组应该代表这个双精度值 -1.4960627518157586E23

0 = -60
1 = -65
2 = -82
3 = 44
4 = 36
5 = 69
6 = -96
7 = 64

谁能帮我将字节数据从 Java 序列化为 JavaScript 类型?

非常感谢。

【问题讨论】:

  • 你真的需要它是二进制的吗,用 JSON 是不是太慢了?
  • 你能告诉我们你的JS客户端代码吗?
  • 我猜如果你使用JSON格式发送数据,你肯定会省去序列化和解析的麻烦。

标签: java bytearray


【解决方案1】:

用 Javascript 阅读

在 Javascript 中读取二进制数据需要一些努力,但有人方便地编写了一段代码来帮助解决这个问题:http://jsfromhell.com/classes/binary-parser

我们可以这样使用它:

var parser = BinaryParser(true);
var outputVal = parser.toDouble([-60, -65, -82, 44, 36, 69, -96, 64]);

用 Java 阅读

如果您在 java 中接收数据,您可以使用 java.io.DataInputStream 从流中读取原始值,如下所示:

byte[] dataArray = new byte[] {-60, -65, -82, 44, 36, 69, -96, 64};
DataInputStream stream = new DataInputStream(new ByteArrayInputStream(dataArray));

double val = stream.readDouble();
out.println(val); // -1.4960627518157586E23

【讨论】:

    猜你喜欢
    • 2011-12-13
    • 2011-11-26
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 2020-11-18
    • 1970-01-01
    相关资源
    最近更新 更多