• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:InputStream.skipメソッドについて)

InputStream.skipメソッドについて

このQ&Aのポイント
  • InputStream.skipメソッドを使用してファイルから指定したバイト数をスキップする方法について知りたいです。
  • ファイルから先頭の4バイトをスキップし、その後に4バイトずつ読み込みながら処理を繰り返したいです。
  • 具体的には、読み込んだデータを処理せずに出力することを考えています。

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

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

4バイトスキップと4バイト処理を交互に繰り返したいなら、skipメソッドではなくカウンター変数を用意してそちらで制御を行うのがよかろう。InputStream#skip()云々ではなくアルゴリズムの問題だ。以下、できるだけskip2の構造を変えずにskip3を示す。skip2との対比のためなので、プログラムを整理しなおしてみて欲しい。 import java.io.IOException; import java.io.FileInputStream; public class skip3 { public static void main(String[] args) throws IOException { FileInputStream fis = null; int i=0; int counter=0; char c; try{ fis = new FileInputStream("ファイル"); // fis.skip(4); // 要らん //ファイルへの読み書き/////////////////////////////////////////// while((i=fis.read())!=-1) { ///////////////////////////////////////////////////////////////// if(counter >= 4) { // counterが0,1,2,3の時は処理しない つまりcounterが4,5,6,7の時は処理をする c = (char)i; System.out.print(c); } if(++counter >= 8) { counter = 0; } } }catch(Exception ex){ // if any error occurs ex.printStackTrace(); }finally{ // releases all system resources from the streams if(fis!=null) fis.close(); } } }

yairi1106
質問者

お礼

ソースコードの提示どうもありがとうございます。 希望通りの数値が出力でき カウンター変数に関しては大変勉強になりました。 読み込んだbyteに関しての処理はこれから 構築していければと思っております。 どうもありがとうございました。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

「4バイトスキップ→4バイト読んで処理」 を繰り返す.

関連するQ&A