0
下面的代碼用於將HotelReportModel數據寫入csv文件。我打算用try-with-resources聲明取代try,但我應該如何處理filewritter.flush ?.裏面最後擋住了。嘗試使用資源如何調用刷新方法
FileWriter fileWriter = null;
try {
fileWriter = new FileWriter(tempCSVFilePath);
fileWriter.append(hotelReportModel.getHeader());
fileWriter.append(NEW_LINE_SEPARATOR);
for(HotelReportModel imageStat:hotelReportModel.getContent()){
fileWriter.append(imageStat.getMarketerName());
fileWriter.append(COMMA_DELIMITER);
fileWriter.append(imageStat.getChainCode());
fileWriter.append(COMMA_DELIMITER);
fileWriter.append(imageStat.getPropertyId());
fileWriter.append(COMMA_DELIMITER);
fileWriter.append(imageStat.getContentProvider());
fileWriter.append(COMMA_DELIMITER);
fileWriter.append(String.valueOf(imageStat.getPropertyImageCount()));
fileWriter.append(NEW_LINE_SEPARATOR);
}
LOGGER.info("CSV file was created successfully !!!");
} catch (Exception e) {
LOGGER.error("Error in CsvFileWriter !!!",e);
} finally {
try {
if(fileWriter != null) {
fileWriter.flush();
fileWriter.close();
}
} catch (IOException e) {
LOGGER.error("Error while flushing/closing fileWriter !!!",e);
}
}
下面試試看資源是對的嗎?
try(FileWriter fileWriter = = new FileWriter(tempCSVFilePath)) {
fileWriter.append(hotelReportModel.getHeader());
fileWriter.append(NEW_LINE_SEPARATOR);
for(HotelReportModel imageStat:hotelReportModel.getContent()){
fileWriter.append(imageStat.getMarketerName());
fileWriter.append(COMMA_DELIMITER);
fileWriter.append(imageStat.getChainCode());
fileWriter.append(COMMA_DELIMITER);
fileWriter.append(imageStat.getPropertyId());
fileWriter.append(COMMA_DELIMITER);
fileWriter.append(imageStat.getContentProvider());
fileWriter.append(COMMA_DELIMITER);
fileWriter.append(String.valueOf(imageStat.getPropertyImageCount()));
fileWriter.append(NEW_LINE_SEPARATOR);
}
LOGGER.info("CSV file was created successfully !!!");
} catch (Exception e) {
LOGGER.error("Error in CsvFileWriter !!!",e);
}
}
無論如何'close'調用'flush',所以你不需要。 –
喬恩你的意思是說,我可以需要刪除完整的最終塊嗎? – user1921479
如果您使用試用資源,是的。 –