-1

Java でテキスト ファイルをスキャンし、Buffered Reader を使用して 1 行ずつ読み取っています。60 から 80 番目の位置にテキストがあります。この位置のテキストに応じて、行をスキップするか、同じ行からデータを読み取るかを決定する必要があります。この場合、「END OF HEADER」が見つかった場合は、その行をスキップする必要があります。ここでは 80 の bufferedreader.skip(line.length()) を使用して、その行をスキップし、次の行に移動してテキストを読み取りましたが、やはり範囲外の文字列が発生します。

streamObs = new FileInputStream(obsFile);
inStreamObs = new InputStreamReader(streamObs);
buffStreamObs = new BufferedReader(inStreamObs);
BufferedReader in = new BufferedReader(new FileReader(obsFile));
String line="";
while((line = in.readLine()) != null)
{
  String typeField=line.substring(Math.min(line.length(),60),line.length());
  //System.out.println(typeField);
  typeField=typeField.trim();
  if (typeField.equals("RINEX VERSION / TYPE")) {
    System.out.println(" Current version:"+line.substring(5,9));
  }
  if (typeField.endsWith("TIME OF FIRST OBS")){
    System.out.println("Time of First Observation:"+ line.substring(2,44));
  }
  if (typeField.equals("END OF HEADER"))
  {
    in.skip(80);

  }
  System.out.println(line.substring(Math.min(line.length(),30),32));

}
4

2 に答える 2

1

いくつかのループ反復をスキップするには、使用する必要がありますcontinue;

于 2015-02-03T13:54:15.940 に答える