2016-06-05 6 views
-2

Hallo Ich entwickle eine einfache Studentenregisteranwendung, die den Benutzer nach Studenteninformationen fragt und speichert es in einer Datei. Die App ist auch dazu gedacht, Informationen zu konsultieren, zu löschen und zu modifizieren. Die bereitgestellten Informationen bestehen aus einer Registrierungsnummer, die für jeden Studenten einzigartig ist, dem Namen des Studenten und seinem Abschluss. All diese Informationen werden in einem Objekt gespeichert und in eine Zeile der Datei geschrieben. Ich habe Probleme mit der Methode, die nach der Info fragt. Nehmen wir an, ich habe einen Studenten, dessen Information "33333 John Stevens Medicine" lautet. Wenn ich die Registrierungsnummer angegeben habe, gibt die App die Informationen für die nextLine in der Datei zurück. Quellcode unter:mit nextLine() und nextToken Methoden in Dateien

String matricula= matriculafield.getText(); 
    Scanner fileIn; 
    StringTokenizer st; 
    try{ 
     fileIn = new Scanner(new FileReader("estudiantes.txt")); 
     while(fileIn.hasNextLine()) 
     { 
      st= new StringTokenizer(fileIn.nextLine()); 
      while(st.hasMoreTokens()) 
      { 
       if(st.nextToken().equals(matricula)) 
       { 
          JOptionPane.showMessageDialog(this,fileIn.nextLine()); 
       } 
      } 


     } 
    } catch (Exception ex) { 
     JOptionPane.showMessageDialog(this, "No se encontró al alumno"); 
    } 

matricula ist die Matrikelnummer, dann habe ich den String in Token teilen und wenn irgendein Zeichen der matricula Variable übereinstimmt sollte ich die Linie, wo das Token ist, aber es gibt die nächste Zeile der Datei stattdessen.

Was ist falsch an meinem Code?

Danke!

+0

* Was ist falsch * Sie anrufen? 'nextLine()' erneut, wodurch die nächste Zeile angezeigt wird. Jeder Aufruf von 'nextLine()' gibt eine neue Zeile zurück. – Andreas

Antwort

0

Wechsel:

st= new StringTokenizer(fileIn.nextLine()); 

An:

String currentLine = fileIn.nextLine(); 
st= new StringTokenizer(currentLine); 

Dann ändern:

JOptionPane.showMessageDialog(this,fileIn.nextLine()); 

An:

JOptionPane.showMessageDialog(this,currentLine);