/ / ¿Cómo activar y desactivar la adición de escritor de archivos? - Java, CSV, escritor de archivos

¿Cómo activar y desactivar el editor de archivos? - Java, CSV, escritor de archivos

Estoy agregando texto al archivo CSV en un bucle. El problema es que todo el proceso lleva demasiado tiempo + - 1 hora (debido a las solicitudes del servidor, pero eso no importa). Quiero poder, en caso de falla del programa en el medio del proceso, reescribir el archivo cuando lo corro nuevamente.

Eso significa que normalmente quiero agregar a CSV, pero si es el primer bucle (el bucle donde se agregan los encabezados, tampoco importa), quiero que aparezcan mis anexos.

Aquí está el código que comprueba si está en bucle con encabezados (el primero) u otro:

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();
}

Intenté agregar esto writer = new FileWriter(sFileName, true); a else y esto: writer = new FileWriter(sFileName); a if, no ayudó.

Si no te parece claro, avísame por favor.

Respuestas

0 para la respuesta № 1

Dado que su programa sabe si agregar o no dentro del condicional, también puede crear su escritor dentro del condicional:

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();