跨编程语言和机器序列化数字的java库
我有一个Java程序,需要写一个8、16、32和64位的整数和16、32和64位的浮点数的文件。 该文件需要由C语言的程序读取(反之亦然)。 这些程序用于不同类型的机器,因此文件需要独立于小端或大端
我正在寻找一个用Java和C编写的库来实现这一点。该库需要紧凑,因为它也将用于微控制器中
注意:目前,我自己正在实现这些函数,并且它工作得很好(因此,不需要给我特别的解决方案)。 注:我知道我可以用人类可读的格式书写数字,并使用scanf读取它们;我现在不想使用这个解决方案,因为它更慢,发生的次数也更多
# 1 楼答案
谷歌的Protocol Buffers似乎就是你想要的
# 2 楼答案
在Java方面,您可以只使用^{} ,它保证使用大端格式,也就是网络字节顺序。在C端,可以使用^{} and ^{} 函数将网络字节顺序转换为主机字节顺序
# 3 楼答案
一种可能是使用Sun的XDR格式。奇怪的是,我不相信Java提供了对它的支持,但如果你环顾四周,很容易找到它。Sun确实包括一个带有Solaris的XDR库;如果不使用Solaris,也很容易找到C的实现