繁体   English   中英

在读取使用python的struct.pack方法编写的Java中的整数时出现问题

[英]Problem reading an Integer in java that was written using python’s struct.pack method

首先,我使用python编写整数:
out.write( struct.pack(">i", int(i)) );

然后,我使用Java中的DataInputStream.readInt()读取整数。
我可以工作,但是当它尝试读取数字10以及其他一些数字时,它开始读取垃圾内容。
读取数字:
0, 4, 5, 0, 5, 13, 10, 1, 5, 6
Java读取:
0, 4, 5, 0, 5, 13, 167772160, 16777216, 83886080

我究竟做错了什么?

心理调试:您正在使用以下代码在Windows上以文本模式编写输出:

f = open("output.dat", "w")
f.write(my_data)

这使您的13(这是换行符)成为回车/换行符(10,13)。

您需要以二进制模式编写输出:

f = open("output.dat", "wb")
f.write(my_data)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM