提问人:ychaulagain 提问时间:12/24/2022 更新时间:12/24/2022 访问量:198
如何有效地读取一个巨大的CSV文件,并基于Java中的用户定义类将CSV值转换为对象
How to read a huge CSV file efficiently and convert CSV values into objects based on a user-defined class in Java
问:
我必须读取一个包含大约 700,000 条记录的大型 CSV 文件,并将 CSV 数据与 API 响应进行比较。我能够使用 OpenCSV 并使代码正常工作。但是,反序列化过程非常缓慢。仅反序列化数据大约需要一个小时。我一直在使用以下代码来读取和反序列化我的 CSV。
List<ProjectVO> csvValue = new CsvToBeanBuilder(new FileReader("project.csv"))
.withType(ProjectVO.class).build().parse();
有没有其他有效的方法可以替代它?
我的班级如下所示:PersonVO
.
.
.
@JsonIgnoreProperties(ignoreUnknown = true)
public class ProjectVO {
@JsonProperty("actualCompletionDate")
@CsvBindByName(column = "actualCompletionDate")
private String actualCompletionDate;
.
.
.
我正在比较我的 CSV 数据和 JSON 响应,如下所示:
assertEquals("The value for column 'actualCompletionDate' has the same data in both files for the ID: "
+ jsonValue.getId(), csvValue.getActualCompletionDate(), jsonValue.getActualCompletionDate());
答: 暂无答案
评论
run: BufferedReader.readLine() into LinkedList, lines: 1000000, estimatedTime: 0.105118655