我正在使用opencsv来解析使用web上传的csv文件数据,并填充bean中的读取数据(使用HeaderColumnNameTranslateMappingStrategy),该工作正常。
但努力寻找最佳方法来验证(作为第一次检查),如果文件在开始处理数据之前具有所有标题。
当文件没有作为columnsMapping map传递的所有头文件时,Opencsv仍会处理该文件并在bean中填充空值。
答案 0 :(得分:1)
因此,在给定CSV文件的情况下,您需要确保标题在处理之前包含一组必需的元素。
我将创建一个带有readHeader方法的实用程序类,该方法获取文件名并使用CSVReader使用readNext()作为字符串数组读取标题(而不是跳过它)并返回它。
然后你可以添加第二个方法来获取该数组和一个数组或必需字段列表,然后使用类似Apache Commons ArrayUtils之类的东西,确保所需数组中的每个元素都在头数组中并返回true如果是这样,否则为假。
然后,如果你想,你可以创建第三种方法,将两者结合起来隐藏复杂性。
希望有所帮助。