• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:固定長データのbyteスキップについて)

固定長データのbyteスキップについて

このQ&Aのポイント
  • バイナリ入出力で固定長データのbyteスキップする方法について教えてください。
  • 例のように先頭に5byte付与されたデータをスキップして10byteずつ読み込む方法を教えてください。
  • Javaを使用してバイナリデータの読み書きを行っており、固定長データのbyteスキップについて困っています。どうすれば良いでしょうか?

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

  • ベストアンサー
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

1行読み込んで その文字列をbyte配列に変換して その配列の5~14を取り出す を行ごとに繰り返すだけだと思うけど 違うの?

yairi1106
質問者

お礼

すいません。 質問を少し変更させて頂きますが 1レコードずつではなく 1レコードごとに10byteあったとします。 レングススキップ設定を495byteと設定したとします。 500byteごとに頭の付与された5byteをスキップさせたいのですが なにかサンプル及びアドバイス頂けますでしょうか? (1)まずはレコード先端の5byteをスキップ (2)次は495byteを超えた時点で5byteスキップとなります。 質問の変更して申し訳ございませんが 宜しくお願い致します。

yairi1106
質問者

補足

アドバイスありがとうございます。 下記は15レコードに対して 語尾に付加されるOD0Aの 2byte分含めて17にしてますが byte配列に変換というのは 下記のようにして 5~14を取り出すという事でしょうか? byte[] rn ="\r\n".getBytes(); byte[] out=new byte[17] ; out[0] = inbuf[0] ; out[1] = inbuf[1] ; out[2] = inbuf[2] ; out[3] = inbuf[3] ; out[4] = inbuf[4] ; out[5] = inbuf[5] ; out[6] = inbuf[6] ; out[7] = inbuf[7] ; out[8] = inbuf[8] ; out[9] = inbuf[9] ; out[10] = inbuf[10] ; out[11] = inbuf[11] ; out[12] = inbuf[12] ; out[13] = inbuf[13] ; out[14] = inbuf[14] ; out[15] = inbuf[15] ; out[16] = inbuf[16] ; bos.write(out[5]); bos.write(out[6]); bos.write(out[7]); bos.write(out[8]); bos.write(out[9]); bos.write(out[10]); bos.write(out[11]); bos.write(out[12]); bos.write(out[13]); bos.write(out[14]); bos.write(rn); } こういう方法でしたら結果は得られたのですが バイト数が多い時に もっと簡素化できるといいのですが・・・

関連するQ&A