java8实现:写一个大数据量出力到csv的共通方法,参数为List<ADto>、ADto.class、filePath,将list出力到csv文件中
时间: 2023-12-14 08:39:06 浏览: 28
以下是一个使用 Java 8 实现的将 `List<ADto>` 写入 CSV 文件的通用方法:
```java
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.List;
public class CsvWriter {
public static <T> void write(List<T> list, Class<T> clazz, String filePath) throws IOException {
try (FileWriter writer = new FileWriter(filePath)) {
// 写入表头
Field[] fields = clazz.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
writer.append(fields[i].getName());
if (i < fields.length - 1) {
writer.append(',');
}
}
writer.append('\n');
// 写入数据
for (T obj : list) {
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
field.setAccessible(true);
Object value = field.get(obj);
writer.append(value == null ? "" : value.toString());
if (i < fields.length - 1) {
writer.append(',');
}
}
writer.append('\n');
}
}
}
}
```
使用方法:
```java
List<ADto> list = new ArrayList<>(); // 假设已经填充了数据
CsvWriter.write(list, ADto.class, "output.csv");
```
其中,`ADto` 是要写入的数据类型,`output.csv` 是输出文件路径。这个方法会将 `list` 中的数据以 CSV 格式写入到 `output.csv` 文件中。