2016-11-22 3 views
1

Ich habe eine Funktion geschrieben, aber es hat ein Problem. Die Funktion liest ID-Zeichenfolgen aus einer Textdatei und sollte true zurückgeben, wenn sie einem erwarteten ID-Zeichenfolgewert entspricht. Wenn keine Übereinstimmung gefunden wird, sollte false zurückgegeben werden.Steuern Sie eine bestimmte Zeile aus einer Textdatei in Java

Die Funktion gibt jedoch immer false zurück, obwohl ich weiß, dass die Textdatei die erwartete ID enthält. Was mache ich falsch?

public boolean WriteOnTxt() throws IOException { 
    boolean durum =false; 
    FileReader fr = new FileReader("HastaKayit.txt"); 
    BufferedReader br = new BufferedReader(fr); 
    String line; 
    String[] parcala; 

    while ((line = br.readLine()) != null) { 
     line = br.readLine(); 
     parcala = line.split("#"); 

     if (parcala[0].equals(this.getPatientID())) { 
      durum = true; 
      break; 
     } else { 
      durum = false; 
     } 
    } 
    br.close(); 
    return durum; 
} 
+0

Können Sie ein Beispiel geben? – Grunzwanzling

+0

@Grunzwanzling 1 # Michael # Jackson # 02/02/1445 ist die erste Zeichenfolge, die es spaltet und an Parcala sendet und die ID eines neuen Objekts annimmt und dann vergleicht, wenn die wahre Funktion wahr ergibt sonst falsch – Maestus

+0

Was ist dann dein Problem? Haben Sie falsche Ergebnisse? – Grunzwanzling

Antwort

0

Sie Überspringen Linien:

while ((line = br.readLine()) != null) { line = br.readLine();

Dieser Abschnitt weist einen String zu line zweimal so effektiv nur Ihre Schleife auf jeder zweiten Zeile von Daten ausgeführt wird. Um es zu beheben, entfernen Sie die zweite line = br.readLine();

+0

yeah jetzt das Problem behoben Danke für die Antwort – Maestus

+0

@Maestus Bitte ändern Sie die Antworten! – JitterbugChew

Verwandte Themen