@Simon Programmiert Mit dem Code gibt es eine ganze Reihe von Problemen.
Problem 1: die erste Schleife
Innerhalb der ersten while-Schleife deklarierst Du die Variable durchlauf. Die wird in jeder Iteration auf 0 gesetzt. Anschließend prüfst Du ab, ob sie kleiner oder gleich 124 ist. Das ist natürlich immer der Fall, weshalb der then-Zweig immer ausgeführt wird, d. h. eine Zeile wird in lines[0] eingelesen, anschließend wird durchlauf auf 1 erhöht. Außerhalb des ifs setzt Du nochmal lines[durchlauf] auf zeile, d. h. an der Stelle betrifft es effektiv lines[1]. Das folgende Inkrementieren von durchlauf hat keinen Effekt, denn in der nächsten Iteration wird durchlauf wieder auf 0 gesetzt.
D. h. Deine Schleife bewirkt folgendes:
while ((zeile = reader.readLine()) != null) {
lines[0] = zeile;
lines[1] = zeile;
}
Es werden also nur lines[0] und lines[1] gesetzt. Wenn ich mal davon ausgehe, dass Du lines mit
String[] lines = new String[124];
definiert und keinem Element explizit etwas zugewiesen hast, sind alle anderen null. Dann bekommst Du in der zweiten Schleife in der dritten Iteration eine NullPointerException.
Problem 2: Du arbeitest mit einer festen Zeilenanzahl. Wozu?
Problem 3: s. Antwort von
@Thorati
Problem 4: Du liest die Zeilen erstmal in ein Array ein. Damit verbrauchst Du unnötig Speicher.
Problem 5: kein Exception-Handling
Problem 6:
file.delete();//sicherstellen ob es nichts überschreibt, anhängt oder ähnliches
Du willst sicherstellen, dass auch ja nichts überschrieben wird. Deshalb löscht Du die Datei erstmal vorsorglich? Auch eine Möglichkeit...