Java Serialization在任何语言之间传输数据

Obi*_*ere 1 java serialization

题:

而不是编写我自己的序列化算法; 是否有可能只使用内置的Java序列化,就像我在下面所做的那样,同时仍然可以使用多种语言?


说明:

我如何想象它的工作方式如下:我启动一个流程,这将是一个特定于语言的程序 - 用该语言编写.所以我有一个CppExecutor.exe文件,例如.我会将数据写入此程序的流.然后程序将执行它需要做的事情,然后返回结果.

为此,我需要以某种方式序列化数据.首先想到的是Serialization使用ObjectInputStream和的基本Java ObjectOutputStream.我所阅读的大部分内容仅表明Java序列化是Java-to-Java应用程序.

这些数据都不需要存储在文件中.传输这些数据包的方法是通过java.lang.Process我已经建立的a .

数据将由以下内容组成:

  • String - 主要包含向用户显示的信息.
  • Integer - 很可能是32位.不需要处理时间.
  • Float- 只是处理所有浮点值.
  • Character - 确保使用正确的类型.
  • Array - 由此列表中的任何元素组成.

我研究如何做到这一点的最好方法如下:我将从一个4字节的幻数开始 - 只是为了确保我们正在处理正确的数据.接下来,我将有一个整数,指定有多少元素.在此之后,对于每个I将具有元件的:一个字节,表示(上述的)的数据类型,通过任何关键信息,前以下:length用于StringArray.然后,随后的数据.


侧面说明:

我还想指出,很多这些计算都将在这里进行,每毫秒都很重要.因此,基于文本的格式(例如JSON)可能会产生更大的操作时间.考虑到人类不需要解释非数据包,仅使用字节不会成为问题.

use*_*697 7

我推荐Google protobuf:它是二进制的,稳定的,经过验证的,并且对你提到的所有语言都有绑定.此外,它还可以很好地处理结构化数据.