Liebe Javagemeinde,
mein aktuelles Problem ist ein sehr merkwürdiges. Ich möchte lediglich zeilwenweise aus
einer Datei in ein Arrays lesen und über eine Randomfunktion Worte
aus dem Array laden.
Meine Aufgabe war es in diesem Beispiel die Laderoutine erstellen, da das Programm auf ein
Hangmanspiel aus einem Lehrgang aufbaut. Das Merkwürdige nun ist, dass das Programm
manchmal normal startet und auch fehlerfrei arbeitet. Beende ich das Programm und
starte es neu (mit Eclipse), kommt ab und an eine NullPointerException. Die Datei ist vorhanden
alle Exceptions auf die ich prüfe (siehe Code) geben keinen Fehler aus - ich bin echt ratlos
momentan.
mein aktuelles Problem ist ein sehr merkwürdiges. Ich möchte lediglich zeilwenweise aus
einer Datei in ein Arrays lesen und über eine Randomfunktion Worte
aus dem Array laden.
Meine Aufgabe war es in diesem Beispiel die Laderoutine erstellen, da das Programm auf ein
Hangmanspiel aus einem Lehrgang aufbaut. Das Merkwürdige nun ist, dass das Programm
manchmal normal startet und auch fehlerfrei arbeitet. Beende ich das Programm und
starte es neu (mit Eclipse), kommt ab und an eine NullPointerException. Die Datei ist vorhanden
alle Exceptions auf die ich prüfe (siehe Code) geben keinen Fehler aus - ich bin echt ratlos
momentan.
Java:
private void neuesWort() {
//Aufgabe 2
int zufall = 0;
int zeile=0;
String woerter[];
woerter = new String[20];
try {
BufferedReader bDatei = new BufferedReader(new FileReader ("liste.txt"));
String inhalt ="";
while ((inhalt = bDatei.readLine()) != null) {
woerter[zeile]=inhalt;
zeile++;
}
bDatei.close();
}catch (FileNotFoundException e)
{
System.out.println("Datei kann nicht gefunden werden.");
}
catch (EOFException e)
{
System.out.println("Ende der Datei wurde erreicht.");
}
catch (ObjectStreamException e)
{
System.out.println("Datei ist nicht lesbar");
}
catch (IOException e)
{
System.out.println("Allgemeiner I/O Fehler");
}
//String[] woerter ={"Test", "Automobil", "Versuch", "Hund", "Katze",
// "Ziege", "Maus", "Elefant", "Isopropylalkohol", "Schwimmbad"};
//ein zuf�lliges Wort ermitteln
//dazu wird eine zuf�llige Zahl zwischen 0 und 1 ermitteln und mit der L�nge von woerter - 1 mulitpliziert
zufall = (int)(Math.random() * (woerter.length-1));
//das Suchwort und die Zeichen f�r die Anzeige setzen
suchwort = new String(woerter[zufall]); //NULL POINTER Exception
anzeige = new StringBuilder(suchwort);
//alle Zeichen in der Anzeige ersetzen durch *
for (int zeichen = 0; zeichen < suchwort.length(); zeichen++)
anzeige.setCharAt(zeichen, '*');
//die Sternchen anzeigen
ausgabeText.setText(anzeige.toString());
}