gpt4 book ai didi

java - 使用 numpy.fromfile 在 Python 中使用 ObjectOutputStream 读取用 Java 编写的 double 的二进制文件

转载 作者:行者123 更新时间:2023-11-30 07:54:51 24 4
gpt4 key购买 nike

我使用 Java 中的 ObjectOutputStream 的 writeDouble() 函数将二进制格式的 double 组写入文件。当我尝试使用 numpy.fromfile 在 Python 上读取此文件时,它没有给我相同的值。当我尝试使用seek()按位移动时,它仍然没有帮助。

如果我用 32 位 int 执行相同的过程,它可以工作,但总是有一些文件的开头部分我需要使用eek()迭代过去,因为它只是我无法区分的乱码。

相关Java代码:

//arr is an array of type double
try {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("data.bin"));
for (int i = 1; i <= 10; i++) {
out.writeDouble(arr[i]);
}
out.close();
} catch (IOException ex) {
Logger.getLogger(Project.class.getName()).log(Level.SEVERE, null, ex);
}

相关Python代码:

datafile1 = open("data.bin", "rb")      
data = np.fromfile(datafile1, dtype=np.float64, count=-1, sep='')

print data

最佳答案

几乎相同,但现在没有元数据添加到文件中:

OutputStream os = new FileOutputStream("data.bin");
DataOutputStream dos = new DataOutputStream( os );
for (int i = 1; i <= 10; i++) {
dos.writeDouble(arr[i]);
}

关于java - 使用 numpy.fromfile 在 Python 中使用 ObjectOutputStream 读取用 Java 编写的 double 的二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32805497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com