/ / Jak włączać i wyłączać dołączanie programu zapisującego pliki? - java, csv, pisarz plików

Jak włączać i wyłączać dołączanie programu do zapisu plików? - java, csv, plik do zapisu

Dołączam tekst do pliku CSV w pętli. Problem w tym, że cały proces zajmuje zbyt dużo czasu + - 1 godzina (z powodu żądań serwera, ale to nie ma znaczenia). Chciałbym móc, w przypadku awarii programu w trakcie procesu, przepisać plik kiedy uruchomię to ponownie.

Oznacza to, że normalnie chcę dołączyć do CSV, ale jeśli jest to pierwsza pętla (pętla, w której dodawane są nagłówki, również nie ma znaczenia), chcę, aby moje dołączanie było wyłączone.

Oto kod, który sprawdza, czy jest zapętlony z nagłówkami (pierwszym) lub innym:

FileWriter writer;
try {
writer = new FileWriter(sFileName, true);
if (!headers.equals("")) {
// here is the point which will not happen twice, just if i re-run the program
writer.append(headers);
writer.append("n");
writer.flush();
} else {
// write values to the file
writer.append(values.toString());
}
writer.flush();
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Próbowałem to dodać writer = new FileWriter(sFileName, true); do else i to: writer = new FileWriter(sFileName); do if, nie pomogło.

Jeśli nie wydaje ci się to jasne, daj mi znać.

Odpowiedzi:

0 dla odpowiedzi № 1

Ponieważ twój program wie, czy dołączyć warunek, możesz także utworzyć program piszący w warunku:

if (headers.length != 0) {
writer = new FileWriter(sFileName);      // Do not append
// here is the point which will not happen twice, just if i re-run the program
writer.append(headers);
writer.append("n");
} else {
writer = new FileWriter(sFileName, true); // Append
// write values to the file
writer.append(values.toString());
}
writer.flush();
writer.close();