我正在使用 opencsv 来解析已使用网络上传的 csv 文件数据,并在 bean 中填充读取数据(使用 HeaderColumnNameTranslateMappingStrategy),这工作正常。
但是在开始处理数据之前努力寻找验证(作为第一次检查)文件是否包含所有 header 的最佳方法。
Opencsv 仍然处理文件并在文件不包含已作为 columnsMapping 映射传递的所有 header 时在 bean 中填充空值。
最佳答案
因此,给定一个 CSV 文件,您希望在处理之前确保标题包含一组必需的元素。
我会创建一个带有 readHeader 方法的实用程序类,该方法采用文件名并使用 CSVReader 使用 readNext() 作为字符串数组读取 header (而不是跳过它)并返回它。
然后您可以添加第二个方法,该方法采用该数组和一个数组或必填字段列表,然后使用类似 Apache Commons ArrayUtils 的方法确保所需数组中的每个元素都在 header 数组中,如果是,则返回 true,否则返回 false。
然后,如果您愿意,可以创建第三种方法,将两者结合起来以隐藏复杂性。
希望对您有所帮助。
关于java - 如何使用 opencsv 验证 csv header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35594121/