Aus Datei String auslesen und vergleichen



  • Hallo,
    ich habe ein blödes problem !

    import java.io.*;
    public class test {
    	public static void main(String[] args) {
    
    		String s = "hallo"; 
    		if (s=="hallo")
    		{
    			System.out.println("Erfolg!"); //Funktioniert
    		}
    		//////////////////////////////////////////////////
    			try{
    				FileWriter fw = new FileWriter("test.txt"); //Erstelle test.txt datei
    				fw.write(s); //schreibe den String s hinein
    				fw.close(); //schließe...
    			}
    			catch(IOException e){
    				System.out.println("Fehler beim erstellen der Datei");
    			}
    
    			try{
    				BufferedReader br = new BufferedReader(new FileReader("test.txt")); //Reader öffnet Datei zum Lesen
    
    				if (br.readLine()=="hallo"){ //Reader ließt die erste zeile zwar richtig aus, aber der vergleich stimmt nicht also:
    					System.out.println("Erfolg"); // Funktioniert nicht
    				}
    				else{
    					System.out.println("Misserfolg"); // Funktioniert (leider)
    				}	
    			}
    			catch(IOException e){
    				System.out.println("Fehler beim öffnen der Datei");
    			}
    
    	}
    }
    

    Weiß jemand Rat 😕



  • Hallo,

    dein Post beinhaltet genau zwei Probleme:

    a) Dein Post beinhaltet keine Frage. Insoweit kann dir hier keiner helfen ohne dein Listing mal kompilieren und laufen zu lassen ==> schlechte Chancen, dass dir einer hilft. Lies dir doch mal "Asking Smart Questions" durch.

    b) Stringvergleiche macht man nicht mittels == sondern über die Methode equals(...) aus java.lang.String



  • Oh ja entschuldigung, ich hab vergessen zu fragen wie ich Stringvergleiche machen kann 🙄
    Aber du hast meine "Frage" trotzdem beantwortet, Danke 😃
    Funktioniert Super 👍


  • Mod

    BTW: Ich hoffe, du machst aus dem

    if (br.readLine() == "hallo")

    kein

    if (br.readLine().equals("hallo")).

    Das ist schlecht, weil readLine null zurückliefern kann. Du würdest dann eine NullPointerException kriegen. Besser ist

    if ("hallo".equals(br.readLine()).

    ...oder eine vorherige Prüfung auf null o.ä.!



  • Danke für den Hinweis 😋 😉


Anmelden zum Antworten