gpt4 book ai didi

java - 从文件中读取 int[][]。 java

转载 作者:行者123 更新时间:2023-12-02 00:14:53 26 4
gpt4 key购买 nike

有一个用 Objective C 创建的文件。该文件中有一个数组:int[x][y]。在 C 中“按原样”读取此文件并仅传递新 int[][] 的链接作为缓冲区是没有问题的。

但我想用 Java 读取这个文件,我尝试将其读取为 int[x*y] 但值不同,因为 C 存储一个双数组 ([][ ])不像简单的[]

我认为有两种方法:重新创建文件以供在 Java 中使用或在 java 中使用 C++,但也许还有一些更简单的方法?

已更新

创建文件(inf Objective C)(数组的大小每次都是固定的)

NSData *mydata = [NSData dataWithBytes:&areas length:sizeof(areas)];
[mydata writeToFile:filePathData options:NSDataWritingAtomic error:&error];

最佳答案

我想问题是你正在将小端 C 数据读取为大端。如果您使用 DataInputStream,它会假定使用大端字节序,这只是在 Sparc 等大端字节序机器上 C 的默认值;)并且许多机器现在几乎已经死机了。

我假设您知道文件的格式,如果它不包含尺寸(宽度和高度),您就知道它们是什么。

我建议您尝试使用 ByteBufferorder(ByteOrder.LITTE_ENDIAN) 来读取数据。有多种方法可以做到这一点。如果您的文件小于 2 GB,我将使用内存映射文件。

关于java - 从文件中读取 int[][]。 java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12050309/

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