/ / Ako zapnúť a vypnúť pripojenie súborov? - java, csv, spisovateľ

Ako zapnúť a vypnúť zapisovanie súborov? - java, csv, súborový editor

Pripájam text do súboru CSV v slučke. Problém je, že celý proces trvá príliš dlho + - 1 hodinu (kvôli požiadavkám servera, ale na tom nezáleží). Chcem byť schopný v prípade zlyhania programu uprostred procesu prepísať súbor keď to znova spustím.

To znamená, že za normálnych okolností chcem pripojiť CSV, ale ak je to prvá slučka (slučka, do ktorej sa pridávajú hlavičky, nezáleží), chcem mať vypnuté pripojenie.

Tu je kód, ktorý kontroluje, či je slučka so záhlaviami (úplne prvá) alebo iná:

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

Skúsil som to pridať writer = new FileWriter(sFileName, true); na else a to: writer = new FileWriter(sFileName); na if, nepomohlo mi to.

Ak vám to nevyzerá jasne, dajte mi vedieť.

odpovede:

0 pre odpoveď č. 1

Pretože váš program vie, či sa má alebo nemá pripojiť k podmienečnému prostrediu, môžete vytvoriť svojho spisovateľa aj v rámci podmienečného režimu:

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