我在Java中有几个矩阵,我希望尽可能高效地传输到Python,而不需要Java和Python方面的标准库。
目前我使用writeDouble函数将它们序列化为文件,逐个写入条目,并使用writeInt写入矩阵的维度。现在我想把这些矩阵读回Python。我可以使用struct.unpack获取整数,但Java的双精度序列化与struct.unpack可以实现的算法不对应。
如何解码writeDouble使用的二进制格式的Java double?我甚至无法找到writeDouble使用的编码规范。
答案 0 :(得分:2)
你是过度工程的; DataOutputStream.writeDouble()
和相关方法用于手动serializing Java对象,因此可以将其重新读取为Java对象。如果你只需要传输数据,你可以简单地将它们写成文本(或字节),然后再读回来。常见的格式是CSV,JSON, XML和ProtoBuf。
如果您所做的只是尝试传输双打列表,您甚至可以每行写出一个,然后使用Python直接读取它们。