java8实现:写一个大数据量出力到csv的共通方法,参数为List<ADto>、ADto.class、filePath,将list出力到csv文件中
时间: 2023-12-14 15:39:20 浏览: 28
可以使用OpenCSV库来实现将List对象输出到CSV文件中。下面是一个Java8实现的示例代码:
```java
import com.opencsv.CSVWriter;
import java.io.FileWriter;
import java.lang.reflect.Field;
import java.util.List;
public class CsvUtils {
public static <T> void writeCsv(List<T> dataList, Class<T> clazz, String filePath) throws Exception {
// 创建CSVWriter对象
CSVWriter writer = new CSVWriter(new FileWriter(filePath));
// 获取类的所有字段
Field[] fields = clazz.getDeclaredFields();
// 输出表头
String[] headers = new String[fields.length];
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
headers[i] = field.getName();
}
writer.writeNext(headers);
// 输出数据行
for (T data : dataList) {
String[] row = new String[fields.length];
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
field.setAccessible(true);
Object value = field.get(data);
row[i] = value == null ? "" : value.toString();
}
writer.writeNext(row);
}
// 关闭CSVWriter
writer.close();
}
}
```
上述代码中,我们首先通过OpenCSV库创建了一个CSVWriter对象。然后,获取指定类的所有字段,并将字段名作为表头输出到CSV文件中。接着,遍历List对象,将每个对象的所有字段值输出到CSV文件中。最后,关闭CSVWriter对象即可。
调用示例:
```java
List<ADto> dataList = new ArrayList<>();
// 添加数据到dataList中
CsvUtils.writeCsv(dataList, ADto.class, "output.csv");
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)