1

私は 3 つの arrayLists を持つ Java クラス ファイルを持っています。1 つは String 型、もう 1 つは Integer 型、もう 1 つは (ArrayList(String)) 型の ArrayList です。これらの配列リストを、文字配列、整数、および short を使用して C の構造体に書き込み、特定の形式の拡張子でファイルを出力する必要があります。ファイルは、同じアプリケーションによって再度読み取り可能である必要があります。データをJavaからC構造に転送し、C構造をファイルに出力する最良の方法は何ですか? ありがとうございました

4

2 に答える 2

1

「C 互換ファイル」形式はありません。C 構造体がディスク ファイルに直接書き込まれている場合、それらはアドホック バイナリ形式です。正確な形式は、構造体のパッキングとパディングバイト オーダー、CPU のワード サイズ (32 ビットまたは 64 ビットなど) などに依存します。

したがって、フォーマットを定義することから始めて、それが C によって生成されることを忘れてください。

フォーマットを定義したら、それを解析するプログラムを Java で作成できます。固定長のレコードが短い場合は、内部的にプライベートbyte[]配列だけを持つクラスを作成し、それを操作して保存し、ロードするメソッドを作成します。

于 2013-09-04T06:11:09.747 に答える
0

ネイティブのバイト順を使用して ByteBuffer にデータを読み書きすることをお勧めします。残りはあなた次第です。

役立つライブラリは、C 構造体を ByteBuffers にマップするのに役立つJavolution の Structライブラリです。これは、C のさまざまなパディング規則に役立ちます。つまり、正確なレイアウトが明らかでない場合があります。

于 2013-09-04T06:06:04.263 に答える