Ich möchte eine Zeile aus einer CSV Datei löschen.
Im Grunde weiß ich auch schon wie ich das anstellen soll, da ich viele Beiträge dazu gefunden habe.
Doch keiner hilft mir bei meinem Problem weiter.
Hier mein Code:
Mein Problem ist, dass ich immer eine NullPointerException bekomme.
Die .tmp Datei wird erstellt, aber die Originaldatei kann nicht gelsöcht werden.
Danke schonmal im Voraus.
Greetz
Crasher
Im Grunde weiß ich auch schon wie ich das anstellen soll, da ich viele Beiträge dazu gefunden habe.
Doch keiner hilft mir bei meinem Problem weiter.
Hier mein Code:
Java:
public void deleteMovie(String title){
//CsV einlesen
readCSV();
//Den Index des zu löschenden Kontakts herausfiltern
for(int i=1; i<cast.length; i++){
if(title.equals(movie[i][0])){
movieToDelete = movie[i][0] + ";" + movie[i][1] + ";" + movie[i][2];
}
}
//BufferedReader schließen um wieder Zugriff auf die Datei zu gewähren
closeBufferedReader();
try {
File inFile = new File("data/movieList.csv");
//Prüfen ob Datei existiert
if (!inFile.isFile()) {
System.out.println("Datei existiert nicht");
return;
}
//Eine *.tmp Datei erstellen, die später wieder umbenannt wird
File tempFile = new File(inFile.getAbsolutePath() + ".tmp");
BufferedReader br = new BufferedReader(new FileReader("data/movieList.csv"));
PrintWriter pw = new PrintWriter(new FileWriter(tempFile));
String line = null;
//Die Inhalte von der Originaldatei auslesen und in der *.tmp Datei
//wieder einfügen, allerdings ohne die zu löschende Zeile
while ((line = br.readLine()) != null) {
if (!line.trim().equals(movieToDelete)) {
pw.println(line);
pw.flush();
}
}
pw.close();
br.close();
//Die Originaldatei löschen
if (!inFile.delete()) {
System.out.println("Datei konnte nicht gelöscht werden");
return;
}
//Die *.tmp Datei in den Originalnamen umbenennen
if (!tempFile.renameTo(inFile))
System.out.println("Datei konnte nicht umbenannt werden");
}
catch (FileNotFoundException ex) {
ex.printStackTrace();
System.out.println("Zu löschende Datei nicht gefunden: " + ex);
}
catch (IOException ex) {
ex.printStackTrace();
System.out.println("Fehler beim Löschen der Datei: " + ex);
}
}
Mein Problem ist, dass ich immer eine NullPointerException bekomme.
Die .tmp Datei wird erstellt, aber die Originaldatei kann nicht gelsöcht werden.
Danke schonmal im Voraus.
Greetz
Crasher