Ich versuche, den folgenden Code mit Apache Commons auszuführen, um es in eine CSV-Datei zu schreiben. Die print-Anweisung für das finalResult
-Array zeigt, dass es das enthält, was ich darin enthalten wollte. Es sendet die Daten aus irgendeinem Grund nicht einfach an den angegebenen csv.Daten werden nicht in csv mit Apache Commons geschrieben
public void handle(ActionEvent runButton) {
String csvFile = (userHomeFolder + "/" + fileName.getText() + ".csv");
FileWriter writer = new FileWriter(csvFile);
try {
final Object [] FILE_HEADER = columnHeaders.toArray();
int modval = 2;
final String NEW_LINE_SEPARATOR = "\n";
FileWriter fileWriter;
CSVPrinter csvFilePrinter;
CSVFormat csvFileFormat = CSVFormat.DEFAULT.withRecordSeparator(NEW_LINE_SEPARATOR);
List rowResult = new ArrayList();
fileWriter = new FileWriter(fileName.getText());
csvFilePrinter = new CSVPrinter(fileWriter, csvFileFormat);
try {
//CREATE CSV FILE HEADER
System.out.println("File header: " + FILE_HEADER);
csvFilePrinter.printRecord(FILE_HEADER);
for(int y = 0; y < finalResult.size(); y++) {
if(y % modval == 0) {
rowResult.add(finalResult.get(y));
csvFilePrinter.printRecord(rowResult);
System.out.println(rowResult);
rowResult.clear();
}else {
//this means it is not the last value in the row
rowResult.add(finalResult.get(y));
System.out.println("fr: " + finalResult.get(y));
}
}
} catch (Exception e) {
System.out.println("Error in csvFileWriter");
e.printStackTrace();
} finally {
try {
fileWriter.flush();
fileWriter.close();
csvFilePrinter.close();
} catch (IOException e) {
System.out.println("Error while flushing/closing");
}
}
}
}
//below catches any errors for any of the above work
catch (Exception e) {
e.printStackTrace();
System.err.println(e.getMessage());
}
Sie verwenden eine konventionelle 'try' ohne' catch' oder 'finally' oder Ressourcendeklaration, weshalb dies nicht kompiliert! Außerdem wäre es wahrscheinlich am besten, die zugrunde liegenden Writer zu schließen, nachdem der Administrator sie verwendet hat, da Sie nicht wissen, ob sie Pufferung verwenden ... – fabian
können Sie den Inhalt von finalResult zu der Frage hinzufügen. auch wenn Sie ausführen, was sehen Sie als Ergebnis Ihrer zwei Ausdruckanweisungen? – digidude
Warum haben Sie zwei 'FileWriter's? Es sieht so aus, als ob du immer nur an einen von ihnen schreibst - welcher ist nicht der mit dem 'csv' Suffix? – Itai