java8实现:写一个方法,参数为List<ADto>、ADto.class、filepath,利用csvMapper将List<ADto>出力为csv文件,自动将ADto的字段名出力为表头
时间: 2023-12-10 09:40:35 浏览: 29
可以使用OpenCSV库来实现将List<ADto>转换为csv文件并输出到指定的文件路径中。下面是一个示例代码:
```java
import com.opencsv.CSVWriter;
import com.opencsv.bean.ColumnPositionMappingStrategy;
import com.opencsv.bean.CsvToBean;
import com.opencsv.bean.CsvToBeanBuilder;
import com.opencsv.bean.HeaderColumnNameTranslateMappingStrategy;
import com.opencsv.bean.StatefulBeanToCsv;
import com.opencsv.bean.StatefulBeanToCsvBuilder;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class CsvUtil {
public static void writeListToCsv(List<ADto> list, Class<?> clazz, String filePath) {
try (FileWriter fileWriter = new FileWriter(new File(filePath))) {
// 创建 ColumnPositionMappingStrategy 对象
ColumnPositionMappingStrategy<ADto> strategy = new ColumnPositionMappingStrategy<>();
// 设置映射的对象类型
strategy.setType(ADto.class);
// 设置列的顺序,与 ADto 的属性顺序一致
strategy.setColumnMapping("id", "name", "age");
// 创建 StatefulBeanToCsv 对象
StatefulBeanToCsv<ADto> beanToCsv = new StatefulBeanToCsvBuilder<ADto>(fileWriter)
.withMappingStrategy(strategy)
.withQuotechar(CSVWriter.NO_QUOTE_CHARACTER)
.withSeparator(CSVWriter.DEFAULT_SEPARATOR)
.withOrderedResults(false)
.build();
// 写入表头
String[] header = {"id", "name", "age"};
beanToCsv.writeNext(header);
// 写入数据
beanToCsv.write(list);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在该示例代码中,我们使用了ColumnPositionMappingStrategy来指定列顺序,HeaderColumnNameTranslateMappingStrategy可用于将列名映射为Java属性名称。在主函数中,我们可以这样调用该方法:
```java
public static void main(String[] args) {
List<ADto> list = new ArrayList<>();
// 添加数据到 list 中
CsvUtil.writeListToCsv(list, ADto.class, "test.csv");
}
```
该方法将会在指定路径下创建test.csv文件,并将list中的数据写入到该文件中。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![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)