gpt4 book ai didi

java - 需要通用方法来读取 csv 文件

转载 作者:行者123 更新时间:2023-11-29 04:13:44 25 4
gpt4 key购买 nike

我正在开发基于 spring web 的应用程序,我在其中方便用户上传 csv 文件,csv 文件的所有内容都将存储在我的 MySQL 数据库中。我可能使用 OpenCsv 读取 CSV 文件,我写了一个方法,我希望它是通用的,因为现在它只为我的模型 Employee 编写,我想将它用作 Utility 类。

这里是

public static List<Employee> parseCSVWithHeader() throws IOException {
CSVReader reader = new CSVReader(new FileReader("emps1.csv"), ',');

HeaderColumnNameMappingStrategy<Employee> beanStrategy = new HeaderColumnNameMappingStrategy<Employee>();
beanStrategy.setType(Employee.class);

CsvToBean<Employee> csvToBean = new CsvToBean<Employee>();
List<Employee> emps = csvToBean.parse(beanStrategy, reader);

System.out.println(emps);
reader.close();

return emps;
}

最佳答案

假设我理解你所说的通用的意思,你可以使方法在某些类型上通用 T .您需要通过 Class<T>作为参数(例如 Employee.class )。您还应该传入要读取的文件。并且,假设 CSVReader是可关闭的,我更喜欢 try-with-resources .喜欢,

public static <T> List<T> parseCSVWithHeader(Class<T> cls, String fileName) 
throws IOException {
try (CSVReader reader = new CSVReader(new FileReader(fileName), ',')) {
HeaderColumnNameMappingStrategy<T> beanStrategy = new HeaderColumnNameMappingStrategy<>();
beanStrategy.setType(cls);

CsvToBean<T> csvToBean = new CsvToBean<>();
List<T> emps = csvToBean.parse(beanStrategy, reader);
System.out.println(emps);
return emps;
}
}

关于java - 需要通用方法来读取 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53587978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com