dポイントプレゼントキャンペーン実施中!

既出でないことを確認してみたつもりです。
<やりたいこと>
1.バイナリデータに埋め込まれたデータを読み込みたい。
2.バイナリデータの並びは例えば

double d1,d2;
char buffer[256];
int i1, i2;

などとなっていてファイルヘッダとして同じフォーマットのファイルには全て埋め込まれています。これを読み込みたいです。

<質問>
C言語であれば例えば構造体を定義してやって構造体のポインタに対して
ヘッダの読み込みを行ってやれば上記のdoubleなどの変数は参照できる
ようになりますが、Javaで同等の処理をやろうとするとどうすれば
良いのかわかりません。
良い方法があれば教えて下さい。宜しくお願いします。

A 回答 (2件)

Javaではポインタの概念がないですし、クラスのフィールドがどのように確保されるかはJavaVMに依存すると思いますので、バイナリデータを手で切り分けるコードを記述するしかないと思います。



このバイナリデータは通信で受信するものか、ファイルから読み込んだものと思いますが、送信(書出し)する側もJavaでしょうか?
Javaの世界では、データ(オブジェクトになると思います)を送信(書出し)する際に直列化(シリアライズ)という処理を行います。この直列化を行うときにデータを手動でバイナリの塊にするのではなく、ObjectOutputStreamやXMLEncoderといったクラスを使うことによって、ファイルや送信データのデータ構造を殆ど意識せずに済ますことができます。
    • good
    • 0
この回答へのお礼

ウェブ上で検索してみて薄々そうかもわからない、と思っていましたがそういうことですか。
了解いたしました。

入力は画像データで、そのヘッダ情報を抜き出すプログラム作成をしたくてこういう質問をいたしました。

お礼日時:2007/10/17 10:55

入力データが画像ということですが、独自フォーマットなのでしょうか?


もし一般的なフォーマットなのでしたら、ImageIOクラスを使えば画像サイズ等の大抵の情報は取得できますよ。
    • good
    • 0
この回答へのお礼

世間一般から見ると独自フォーマットである、と言うことでよいのだと思います。
ただ、一般的なフォーマットの画像も扱うのでImageIOクラスも使用してみます。
ありがとうございました。

お礼日時:2007/10/17 17:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!