2016-04-12 13 views
0

.txtファイルから読み込んだデータを保存する際に問題があります。その行の先頭にあるキーに応じてデータを保存しようとしています。何らかの理由でそのまま文書を印刷しているだけです。ここで.txtファイルから読み込んで.startsWithを使用する

はコードです:

File file = new File(selectedFile.getAbsolutePath()); 


      } 

     if (connectionTab.startsWith("Connection: ")) { 
      continue; 
     } 

     if (!sca.hasNext()) { 
      break; 
     } 

     String connection = sca.next(); 


     if (!sca.hasNext()) { 
      continue; 
     } 
     String otherConnection = sca.next(); 

     if (!sca.hasNextDouble()) { 
      continue; 
     } 
     double distance = sca.nextDouble(); 


     TrainNetwork.newStation.addConnection(connection, otherConnection, distance); 
     System.out.println(connection + " " + otherConnection + " " + distance); 

    } 

} catch (FileNotFoundException e) { 
    System.out.println("File not found"); 
} 
+0

*読ん線でスタート 'nextLine(を使用して、ファイルから一度に*)'だけではなくスペース区切り '次の()/のhasNext()'メソッド –

+0

最初のものはあなたですif(stationTab.startsWith( "Station:")) 'に対して再テストしますが、スキャナは_delimiter_として空白を使用し、スペースはスキャンされたテキストには含まれません_ので、この' if'は常に失敗します。おそらく '' Station: '' _ _outout_の後ろにスペースがあるかどうかテストしたいでしょう。 –

+0

これは第2のコードです。 "otherConnection"と "distance"を扱うコードの後半では、 'try(Scanner sca = new Scanner(file)){' ... _new_ Scannerは、コードの最初のセクションで読み込んだ同じファイルの_start_からすべての読み込みを開始します。 –

答えて

1

あなたはcontinue;ループすぐif(stationTab.startsWith("Station: ")) {で。 「、それを削除

if (stationTab.startsWith("Station: ")) { 
    // if(stationTab.startsWith("Station: ")) { 
    //  continue; 
    // } 
    if (!sc.hasNext()) { 
     break; 
    } 
関連する問題