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