1

我有一个包含三个arrayLists 的java 类文件,一个是String 类型,一个是Integer 类型,另一个是ArrayList 类型(ArrayList(String))。我必须将这些数组列表写入具有字符数组、整数和 short 的 C 结构中,并以特定格式扩展名输出文件。该文件必须由同一应用程序再次读取。将数据从java传输到c结构然后将c结构输出到文件中的最佳方法是什么。谢谢

4

2 回答 2

1

没有“C 兼容文件”格式。如果您将 C 结构直接写入磁盘文件,那么这些结构是 ad-hoc 二进制格式。确切的格式取决于结构的打包和填充字节顺序、CPU 的字长(如 32 位或 64 位)等。

所以,从定义格式开始,然后忘记它是由 C 生成的。

一旦定义了格式,就可以编写一个程序来用 Java 解析它。如果它是固定长度的记录,我可能会创建一个类,它内部只有一个私有byte[]数组,然后是操作它的方法,保存它并加载它。

于 2013-09-04T06:11:09.747 回答
0

我建议您使用本机字节顺序将数据写入/读取到 ByteBuffer。剩下的就看你怎么做了。

一个可能有帮助的库是Javolution 的 Struct库,它可以帮助您将 C 结构映射到 ByteBuffers。这可以帮助 C 的各种填充规则,即确切的布局可能不明显。

于 2013-09-04T06:06:04.263 回答