使用 SuperCSV 跳过 CSV 文件中的可选 Header

Skip Optional Header in CSV file with SuperCSV

我有一个系统,用户可以通过 csv 文件导入数据。 使用 SuperCSV 将文件解析为 POJO。

我希望能够在有或没有 header 行的情况下管理这些文件。

CsvBeanReader.getHeader(true) 将提取第一行,但如果它不是 header 那么 BeanReader 将不会解析该行。

有没有一种简单的方法来检测 header 而不会丢失第一行数据?

最简单的解决方案是只读取文件两次(在第一遍检查预期的 headers - 您只需要读取第一行,然后读取 with/without header在第二遍)。

我找到了解决办法。

通过使用 BufferedReader 包装提供的 Reader,我可以标记开头,阅读第一行,如果不是 header,则执行 reader.reset()

从文件中读取值时从 super csv 跳过 header 的最佳想法:-

//不要写这一行 beanReader.getHeader(true)

// 在读取值之前传递你声明的 headers 数组 headers = {column1},{column2}

//然后使用下面的行,其中排除了 header

beanReader.read(类型,headers,处理器))

以上步骤帮助我们读取没有header保存的csv文件。