首先封装了一个工具类: public class UtilsFileWriter { private PrintWriter out; /** * @param filePath * @throws IOException */ public UtilsFileWriter(String filePath) throws IOException { out = new PrintWriter(new BufferedWriter(new FileWriter(filePath))); } public void printLine(String content) { out.println(content); } public void close() { out.flush(); out.close(); } } 在用这个工具类工作: public class TxtExport implements Export{ private Logger logger = Logger.getLogger(this.getClass()); public void export(String filePath, List<NMRClientMerge> list) { UtilsFileWriter writer = null; File file = new File(filePath); try { if (file.exists()) { FileUtils.deleteQuietly(file); } file.createNewFile(); writer = new UtilsFileWriter(filePath); String contentSeparator = ResourceUtils.getResource(ResourceKey.ASDS_EXPORT_TXT_SEPARATOR); Iterator<NMRClientMerge> it = list.iterator(); StringBuffer sb = new StringBuffer(); sb.append("Acronym").append(contentSeparator).append("Entity").append(contentSeparator).append( "Client Name").append("/r/n"); while (it.hasNext()) { NMRClientMerge client = (NMRClientMerge) it.next(); sb.append(client.getAcronym()).append(contentSeparator); sb.append(client.getEntity()).append(contentSeparator); sb.append(client.getClientName()).append("/r/n"); } sb.deleteCharAt(sb.length() - 1); writer.printLine(sb.toString()); sb.setLength(0); } catch (IOException e) { logger.error("Error occur while exporting data from table to file", e); } finally { if (writer != null) { writer.close(); } } } }