OOP Auslöser für NullPointerException

Diskutiere Auslöser für NullPointerException im Allgemeine Java-Themen Bereich.
B

bfg97

Hi,
Ich schon wieder. Diesmal geht es um das Einlesen und Suchen in einer Datei. Das klappt auch soweit ganz gut, jedoch muss man tatsächlich auf Groß- und Kleinschreibung aufpassen, da sonst unterschiedliche Länder angezeigt werden^^
Das eigentliche Problem ist aber, dass mir nach der Durchführung des Programmes und nachdem sämtliche Länder angezeigt wurden, eine NullPointerException angezeigt wird, ich aber nicht weiß, weshalb die ausgelöst wird und wie ich sie beheben kann.
Hier ist mein Code:
Java:
public static void main(String[] args) throws IOException {
        
        System.out.println("Geben Sie das zu suchende Land oder Buchstaben, die es enthalten soll, ein: ");
        Scanner suche=new Scanner(System.in);
        String search=suche.next();
        
        
        
        //FileReader countries= new FileReader("C:\\Users\\user\\Desktop\\countries.txt");
      
        
        String datei=("C:\\\\Users\\\\user\\\\Desktop\\\\countries.txt");
        
        
        try{
            BufferedReader reader=new BufferedReader(new FileReader(datei));
        
        
            String zeile=reader.readLine();
            while(zeile!=null) {
                zeile=reader.readLine();
                if(zeile.contains(search)) {
                    System.out.println(zeile);
                }
            }
            reader.close();
        }
        
        catch(NullPointerException ioe) {
            ioe.printStackTrace();
        }
        suche.close();
        
        
        //char[] c= new char[10000];
      
       /* while((countries.read(c))>=0) {  //Ausgabe der Datei
            System.out.print(c);
        };
        countries.close();*/
    }

}
 
Wurstkopp

Wurstkopp

Was passiert denn wenn readLine() NULL zurück gibt in der nächsten Zeile? NULL.contains().

Eine Möglichkeit ist, die Zuweisung und die Abfrage zusammen in die While Bedingung zu packen:

while((zeile = reader.readLine()) != null)
 
B

bfg97

Danke, das hat den Fehler behoben und dank deiner Erklärung habe ich auch verstanden, weshalb der Fehler aufgetreten ist:)
 
MoxxiManagarm

MoxxiManagarm

Ich möchte dir nochmal raten das AutoClosable Interface zu verwenden. Gewöhne es dir gleich an, wenn du bei der Java Entwicklung am Ball bleiben willst. Außerdem hast du keine nervigen close() Statements mehr. Das sieht dann so aus:

Java:
try (BufferedReader reader = new BufferedReader(new FileReader(datei));) {
  // ...
  // entfällt: reader.close();
} catch (IOException ioe) {
  ioe.printStackTrace();
}
 
Thema: 

Auslöser für NullPointerException

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben