Java 如何读取使用python';s struct.pack方法

Java 如何读取使用python';s struct.pack方法,java,python,Java,Python,我已使用struct.pack将信息写入python中的一个文件 例如 然后我用java阅读它,使用DataInputStream和readInt,readFloat和readUTF。 读取数字是可行的,但只要我调用readUTF()我就会得到EOFException 我假设这是因为编写的字符串的格式和java读取字符串的方式不同,还是我做错了什么 如果它们不兼容,是否有其他方法读取和写入字符串?将记录readUTF()所需的格式。简而言之,它需要一个16位的大端长度,后跟字符串的字节。因此,我

我已使用struct.pack将信息写入python中的一个文件 例如

然后我用java阅读它,使用
DataInputStream
readInt
readFloat
readUTF
。 读取数字是可行的,但只要我调用
readUTF()
我就会得到
EOFException

我假设这是因为编写的字符串的格式和java读取字符串的方式不同,还是我做错了什么


如果它们不兼容,是否有其他方法读取和写入字符串?

将记录
readUTF()
所需的格式。简而言之,它需要一个16位的大端长度,后跟字符串的字节。因此,我认为您可以修改包调用,使其看起来像这样:

s = "abc"
out.write( struct.pack(">H", len(s) ))
out.write( struct.pack(">%ds" % len(s), s ))
我的巨蟒有点生锈了,但我想差不多了。它还假设一个短(H)是16位

s = "abc"
out.write( struct.pack(">H", len(s) ))
out.write( struct.pack(">%ds" % len(s), s ))