应用Java泛型和反射导出CSV文件的方法
发布时间:2020-12-14 14:12:42 所属栏目:Java 来源:网络整理
导读:本篇章节讲解应用Java泛型和反射导出CSV文件的方法。供大家参考研究。具体如下: 项目中有需求要把数据导出为CSV文件,因为不同的类有不同的属性,为了代码简单,应用Java的泛型和反射,写了一个函数,完成导出功能。 复制代码 代码如下: public T v
本篇章节讲解应用Java泛型和反射导出CSV文件的方法。分享给大家供大家参考。具体如下: 项目中有需求要把数据导出为CSV文件,因为不同的类有不同的属性,为了代码简单,应用Java的泛型和反射,写了一个函数,完成导出功能。 复制代码 代码如下: public <T> void saveFile(List<T> list,String outFile) throws IOException {
if (list == null || list.isEmpty()) { return; } if (StringUtils.isEmpty(outFile)) { throw new IllegalArgumentException("outfile is null"); } boolean isFirst = true; BufferedWriter out = null; try { out = new BufferedWriter(new FileWriter(outFile)); for (T t : list) { StringBuilder sb1 = new StringBuilder(); StringBuilder sb2 = new StringBuilder(); Class clazz = (Class) t.getClass(); Field[] fs = clazz.getDeclaredFields(); for (int i = 0; i < fs.length; i++) { Field f = fs[i]; f.setAccessible(true); try { if (isFirst) { sb1.append(f.getName()); sb1.append(","); } Object val = f.get(t); if (val == null) { sb2.append(""); } else { sb2.append(val.toString()); } sb2.append(","); } catch (IllegalArgumentException | IllegalAccessException e) { e.printStackTrace(); } } if (isFirst) { out.write(sb1.toString()); isFirst = false; out.newLine(); } out.write(sb2.toString()); out.newLine(); } } catch (IOException e1) { throw e1; } finally { try { if (out != null) { out.close(); } } catch (IOException e2) { throw e2; } } } 希望本文所述对大家的Java程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |