• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Java バイナリデータの扱い)

Javaバイナリデータの扱い方法

このQ&Aのポイント
  • Javaでバイナリデータを読み込む方法について
  • C言語で構造体を使用してバイナリデータを読み込めるが、Javaはどうすれば良いか
  • Javaでバイナリデータを読み込むための適切な方法について

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Javaではポインタの概念がないですし、クラスのフィールドがどのように確保されるかはJavaVMに依存すると思いますので、バイナリデータを手で切り分けるコードを記述するしかないと思います。 このバイナリデータは通信で受信するものか、ファイルから読み込んだものと思いますが、送信(書出し)する側もJavaでしょうか? Javaの世界では、データ(オブジェクトになると思います)を送信(書出し)する際に直列化(シリアライズ)という処理を行います。この直列化を行うときにデータを手動でバイナリの塊にするのではなく、ObjectOutputStreamやXMLEncoderといったクラスを使うことによって、ファイルや送信データのデータ構造を殆ど意識せずに済ますことができます。

kuntaro1107
質問者

お礼

ウェブ上で検索してみて薄々そうかもわからない、と思っていましたがそういうことですか。 了解いたしました。 入力は画像データで、そのヘッダ情報を抜き出すプログラム作成をしたくてこういう質問をいたしました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

入力データが画像ということですが、独自フォーマットなのでしょうか? もし一般的なフォーマットなのでしたら、ImageIOクラスを使えば画像サイズ等の大抵の情報は取得できますよ。

kuntaro1107
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 汎用のファイル読み取り関数について

    ファイルデータを読み取る関数を作成しています. Data *ReadFile (const char *name, Data *data, const char *format, ...) というプロトタイプを考えます. ここでDataはプログラマが自由に定義できる構造体です. この構造体の一例を示すと, typedef struct { int id; /* ID番号 */ char name[32]; /* 氏名 */ char sex; /* 性別 */ int age; /* 年齢 */ char addr[64]; /* 住所 */ } Data; という具合です. 読み取るファイルの書式はプログラムの種類によって 異なりますが, fopen関数やfclose関数を使用するといった 手順は全く同一です. そこで上記のような汎用的な ファイル読み取り関数を書こうと思ったのですが 読み取り部分fscanfの処理をどのように行えばよいか 分かりません. formatで指定する書式は'%'を区切りとする複数の文字列に 分け(例えばformat="%s %d"であればbuffer="%s \0%d\0"), char型のポインタ配列bpで参照できます. 可変引数の部分で 構造体のメンバを指定できるようにしたいのですが... ちなみに呼出側では Data *data; data = ReadFile ("a.txt", data, "%d %s %c %d %s", data->id, ...); というようにしたいと考えています. ソースを以下に示します. どなたかお力をお貸しくださいませ. Data *ReadFile (const char *name, Data *data, const char *format, ...){ FILE *stream; size_t data_size = 1024, buffer_size = 128, bp_size = 16; short i, j, k; char *buffer; char **bp; /* buffer pointer */ va_list ap; /* argument pointer */ (省略) va_start (ap, format); i = 0; k = 0; while (!feof (stream)) { fscanf (stream, bp[i], va_arg (ap, ????)); (省略) } va_end (ap); }

  • EXCEL VBAで、バイナリデータの書き込み及び読み込みについて

    御世話になります。仕事でいきずまってしまったので助けて下さい。 今Excelvbaで、あるExcelファイルのデータを読み込んで、バイナリファイルとして出力するソフトを作ってるのですが、内部的にデータを構造体に一度格納して、一気にバイナリファイルに書き込む、もしくはその逆(バイナリファイルを読み込んで、一気に構造体に入れる)にはどうすればよいのでしょうか?apiのfailopenやvcを使えば出来るらしいのですがよくわかりません。vbaでは不可能なのでしょうか?どなたかご教授下さい。

  • ASPにおけるバイナリデータの扱いについて

    はじめまして。 フリーウェアやシェアウェアを使わないで、HTMLからのファイルのアップロード を実現させたいと思っているのですが、BinaryRead等を使用し、 バイナリ形式のデータをSafeArrayに格納する所まではわかったのですが、 そのデータをサーバー側に書き込む術がわかりません。 BinaryWriteで表示させてみたところ、メールファイルのようなヘッダとフッタが くっついていたので、これを外す方法などがわかればいいのですが・・・。 よろしくお願いします。

  • MIMEとバイナリデータの読み方

    バイナリファイルの中、MIME boundary1の後、ヘッダーの部分のXMLで書かれたテキストファイルあります。そのXMLヘッダー文をパースしたい。 バイナリファイルのほかのところにMIME boundary2の後バイナリ形式のデータあります。 Googleで調べたけど、なにかは見つかったけど、理解できず困っています。 バイナリファイルを一バイトづつ読んで、Integer.toHexString()を使うとASCIIの形でXMLの部分はそのまま (フォーマットなしで)、バイナリデータの分は化けた表示されます。 だいたいのアウトラインでよいです。やり方ご存知の方、教えてください。 (1)boundary1の後書かれたXML式データを読む方法 (2)boundary2の後、決まったキーワードが入っていたら、そこから決まったバイト数までのバイナリデータを読む方法 その決まったキーワードと決まったバイト数はヘッダーのXML内に書かれています。

    • ベストアンサー
    • Java
  • バイナリデータからの値の取得について教えてください

    今、バイナリデータから値を取りだそうとがんばっています。 しかし、うまくいかずに困っています。 困っていることは2点あります。 (1)バイナリデータにはリトルエンディアンで格納していると書いています。 まず、リトルエンディアンで書かれている場合、どのような処理を考えることが必要なのでしょうか? (2)バイナリデータには、 はじめに文字列(char)型4バイトで「RIFF]という値 次に32ビット符号なし整数で4バイトの数字、 次に4052バイトの構造体 などと収納されているようです。 このように入っているデータから値を取得するにはどのようにしたらよいのでしょうか? 全然できなくて困っています。 教えていただけないでしょうか? よろしくお願いいたします。

  • fwriteで作成したバイナリファイルのデータ削除について

    社員データをバイナリファイルで保管しています。 社員データはもちろん構造体で、登録時毎に入力したデータを ファイルにfwriteで書き込んでいます。 不必要になったデータを削除する時に、ファイルからデータを 削除したいのですが、綺麗に削除できません。 現在は、代替案として、削除したいデータをfseekで探し、 構造体の中身をALL 0にした構造体で上書きしています。 どのようにしたらバイナリファイル自体から 削除したいブロック分を削除できるのでしょうか。 教えてください。

  • バイナリエディタはどう使うの?

    先日配布するために作成した音声ファイルや画像ファイルを全て.datに書き換えました。 しかし計画性無く全て書き換えてしまったので一体どれがどのファイルか わからなくなってしまいました。 そこでバイナリエディタで開いてみたのですが、よくわかりません。 .wavファイルはバイナリエディタのヘッダを見たらwavと書いてあるのでわかるのですが、 何も書いて無いファイルもあります。 そこでちょっとバイナリについて勉強してみようかと思ったのですが そんなバイナリについて詳しく説明してあるサイトとか本とかありますでしょうか。 ヘッダファイルはこんな構造になっているとか。 よければ本やサイトのオススメを教えてください。 よろしくお願いします。

  • 可変長構造体をファイルから読み込み処理

    可変長の構造体、 typedef struct 構造体(仮) { char c1,c2; float f1,f2; double d; int size; //↓strのサイズ char str[1]; //文字配列 }構造体(仮); の形式で書かれたバイナリデータファイルがあります。 そのファイルを読み込んでcsv形式で出力する処理を、 ファイルからの読み込む回数を減らしてやりたいと思っています。 その方法を教えていただけませんか? よろしくおねがいします。

  • objective-cで、バイナリの読み込みに関して。

    objective-cで、バイナリの読み込みに関して。 バイナリファイルが容易してあり。 例えば Cで下のようなソースで読み込みできるとします。 typedef struct tagTTestStruct { int data1; int data2; char data3; } TTestStruct; int main() { TTestStruct testdata; FILE *fp; fp = fopen( FILENAME , "rb" ); fread( &testdata , sizeof( testdata ) , 1 , fp ); fclose( fp ); printf( "data1 = %d , data2 = %d , data3 = %d\n" ,testdata.data1,testdata.data2,testdata.data3 ); return 0; } これを、objective-cらしく書くにはどうしたらいいのでしょうか、、、 nsdataやnsarchiverを調べてみたのですが、よくわからないんです。 また、参考になるようなサイトがあればおしえてほしいです。

  • 別ファイルの構造体の値を読み込む、変えるには?

    別のファイルに下の構造体があったとして、どのように書けば構造体のデーターを読み込んだり、値を変えたり出来ますか? static struct{ char *name[2]; double d_data[2]; int i_data[4]; double s_data[2]; int state[2][3]; int regi[5]; }kya_data[2]={ {   { "奈美" , "爆弾" },   {    43.0000 ,    54.0000 ,   } , {    50 , 50 , 50 , 50   } , {    0.100,    0.100,   } , {   { 0 , 0 , 0 } ,   { 0 , 0 , 0 }   } , {    100 , 0 , 0 , 0 , 0   } },{   { "由美" , "湖" },   {    23.0000 ,    76.0000 ,   } , {    50 , 50 , 50 , 50   } , {    0.100,    0.100,   } , {   { 0 , 0 , 0 } ,   { 0 , 0 , 0 }   } , {    0 , 0 , 0 , 0 , 100   } } };

このQ&Aのポイント
  • プリンター修理後にスマホとの接続ができず、手動設定しても接続できませんと表示される問題が発生しています。
  • お使いの環境はiOS16.1.2で、無線LAN経由で接続されています。
  • 関連するソフト・アプリや電話回線の情報は特に記載がありません。
回答を見る

専門家に質問してみよう