项目中经常要将数据导出到txt文件,于是我想做一个通用的类,经过两小时,终于写出来了,跟那个导出到EXCEL同时写的,发出来共享一下,大家用得上的话就好。
这个是通用的类代码:
参数1:标题列的数组
参数2:一个集合,也就是你所要导出的内容
参数3:要导出数据的原型实体类
package com.origin.util;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.List;
public class ExportText<T> {
public InputStream execute(String[] title, List<T> list, Object model) {
StringBuffer sb = null;
sb = new StringBuffer();
for (int i = 0; i < title.length; i++) {
sb.append(title[i] + ',');
}
sb.append("\r\n");
for (int i = 0; i < list.size(); ++i) {
model = list.get(i);
Method[] method = model.getClass().getMethods();
for (int j = 0; j < method.length; j++) {
if (method[j].getName().substring(0, 3).equals("get")
&& method[j].getName() != "getClass") {
Method m;
try {
m = model.getClass().getMethod(method[j].getName());
Object result = m.invoke(model);
if (result != null) {
sb.append(result.toString() + ",");
} else {
sb.append("-,");
}
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
sb.append("\r\n");
}
byte[] content = sb.toString().getBytes();
InputStream is = new ByteArrayInputStream(content);
return is;
}
}