私は、csvファイルに書き込むために、次のコードをApacheコモンで実行しようとしています。 finalResult
配列のprintステートメントは、配列に入れたいものがあることを示しています。それは何らかの理由で指定されたcsvにデータを送信しません。あなたはおそらく5行にprintf
で何ができるかやってコードやサードパーティのライブラリの行の数十が必要なのはなぜデータがApache Commonsでcsvに書き込まれていない
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());
}
従来の 'try'を' catch'や 'finally'やリソース宣言なしで使用しています。これがなぜコンパイルされないのですか?さらに、彼らがバッファリングを使用しているかどうかわからないので、それらを使用して、ウィルターの後に基礎となる作家を閉じるのが最善でしょう。 – fabian
finalResultの内容を質問に追加できますか?また、2つのプリントアウトステートメントの結果として何が表示されるのか? – digidude
なぜ2つの 'FileWriter'がありますか?あなたは「csv」という接尾辞を持っていない人の一人にしか書いていないようです。 – Itai