アプリ版:「スタンプのみでお礼する」機能のリリースについて

今私が行なおうとしていることは、char型とbin型が混ざり合ったファイル(1レコード301バイト)から固定バイト部分(bin型の部分4バイト分)を切り取り、
テキストファイルで読み取れる数値(int、又はbouble)に変換・出力するという作業です。

FileInputStreamとDataInputStream.read()を使用し、全データをbyte[]で取得、対象固定バイト部分のbyte[]取得までは出来ました。
取得したbyte[]の値を見ると、16進数表記になっていました。ここで、1バイト分(byte[1])をintValueでintに変換する事はできましたが、
4バイト分(byte[4])の値を一気に10進数表記にしてint型で出力する方法がわかりません。
誰かわかる方はいらっしゃいますか?そもそもできないのでしょうか?

またはもっと良い方法があれば教えていただきたいです。

補足としてですが、BufferedReaderでファイルを読込まなかったのは、bin型データ部分がたまたま改行コードになってしまうことがあり、readLine()で1行データ(301バイト分)を取得できないからです。
こちらの方法でも読込み・変換できるのでしょうか?

誰かわかる方がいらっしゃったらぜひ教えて下さい!

A 回答 (1件)

エンディアンによって変わりますが


int bytesToInt(byte[] b) {
 return (b[0]<<24)+(b[1]<<16)+(b[2]<<8)+b[3];
}
とか。
    • good
    • 0

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