Frage von Waschlaba, 58

Java: Aus Textdatei Zeilen auslesen?

Hallo, Ich mache mit einer .txt Datei eine Benutzer und Passwort abfrage. Funktioniert auch alles super bis auf eine kleine Sache.

Die Textdatei ist so aufgebaut:

USER:TestPerson1 PW:TestPasswort1 EMAIL:TestEmail1@test.de

USER:TestPerson2 PW:TestPasswort2 EMAIL:TestEmail2@test.de

Mit einem BufferedReader und einer while-schleife lese ich die Textdatei ein. Mit einer if abfrage sucht er sich dann nach eingabe die zeile raus, wo der Benutzer steht.

Quellcode: Auszug:

BufferedReader b = new BufferedReader (new FileReader("Filename") ); while( (zeile = b.readLine()) != null ) { if(zeile.equals(namelesen)){ } }

da in der nächsten zeile dann immer das Passwort steht würde ich in der if abfrage eine weitere abfrage einbringen wo er dann nur die nächste zeile prüft.

Ich hoffe ihr versteht mein Problem und könnt mir helfen( ja .. ich bin schlecht im erklären :D )

ganzer quellcode:

public void lesen(){ namelesen = txt_name.getText(); zeilepw = pw_passwort.getText();

    namelesen = "USER:"+namelesen;
    zeilepw = "PW:"+zeilepw;
    
    
     zeile="";
         try {
                BufferedReader b = new BufferedReader (new FileReader("FileName") );
                while( (zeile = b.readLine()) != null ) { 
                  
                    
                    if(zeile.equals(namelesen)){
               
                                     }
                      
                    }
                    }
                
                b.close();
                
              }
              catch (IOException e) {
                System.out.println("Fehler: "+e.toString());
              }    
}
Antwort
von flewilo, 26

Es ist generell vielleicht besser sich bei solchen Fragen auf stackoverflow.com und Web-Tutorials von Java aufzuhalten.

Ich kann dir nur ein paar Tipps geben, da du selbst auf das genaue Ergebnis kommen musst.

  1. bf.readLine() liest eine ganze Zeile, nicht nur bis zum nächsten Leerzeichen bspw.
  2. du solltest dir in deinem Fall die Dokumentation zu string.split() ansehen. Kann hilfreich sein, die einzelnen Strings in einem Array zu haben.

Wenn du die Daten Zeilenweise abgespeichert hast, kann deine while-Schleife problematisch werden, wenn du nicht immer genau den selben Aufbau hast.

Kommentar von flewilo ,

Und falls Performanz nicht essentiell bei dieser Aufgabe ist, kannst du dir auch einmal den Scanner ansehen. Dieser macht einige Leseaufgaben einfacher.

Kommentar von TeeTier ,

Nein, Stackoverflow ist nicht für Einsteiger gedacht, und man sollte dort nur posten, wenn man eine "vernünftige" Frage hat.

Für einfache Anfängerfragen ist GF schon OK. :)

Kommentar von flewilo ,

Ich habe auch nicht von direkt losfragen gesprochen. Die meisten Fragen, die man hat, egal welcher Schwierigkeit, sind dort meistens bereits geklärt worden. Suchen ist das Stichwort.

Und was noch dazu kommt: Die Community, die man dort erreicht. Sie ist einfach thematisch besser geeignet.

Antwort
von DerTod99, 14

Ich denke es wäre besser ne xml Datei zu verwenden statt ner txt. Einfach mal nach xml Googlen dafür gibt's dann auch schon immer entsprechende Reader und Writer in den verschiedenen Sprachen.

Kommentar von maximilianus7 ,

XML: auf KEINEN FALL! schon gar nicht für einen anfänger. meine meinung: alles was du mit XML lösen kannst, kannst du ohne besser lösen.

XML ist nur ein - wenn auch erfolgreicher - Hype.
und: die aufgabe sollte auch mit gegebenem textfile lösbar sein - vielleicht so vorgegeben?

Kommentar von DerTod99 ,

Warum sollte man keine xml Filets verwenden? Ich meine es bietet dir ne einigermaßen schnelle Lösung Daten übersichtlich zu verwalten. Wenn ich das ganze mit Textfiles machen würde wird es erstens langsamer unübersichtlicher und viel komplexer. Also was würde dagegen sprechen?

Antwort
von maximilianus7, 9

das was du machen würdest, hörst sich doch gut an, warum machst dus nicht einfach?

wo ist dabei genau dein problem?

programmieren = denken + coden + ausprobieren

Keine passende Antwort gefunden?

Fragen Sie die Community