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 № 1Ponieważ 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();