1
我正在使用opencsv來解析已經使用web上傳的csv文件數據,並使用正常工作的bean填充讀取數據(使用HeaderColumnNameTranslateMappingStrategy)。如何使用opencsv驗證csv頭
但努力尋找最好的方式來驗證(作爲第一個檢查),如果該文件在開始處理數據之前具有所有標題。
當文件沒有包含作爲columnsMapping映射傳遞的所有頭文件時,Opencsv仍會處理該文件並在bean中填充空值。
當然,我可以做到這一點,但在服務器端我沒有文件,但輸入流,一旦我打開inputstream驗證頭,我將無法使用現有的CsvToBean#解析實現來解析數據。 – Vinod
啊 - 溪流。好的,有一種方法,但你必須等到解析完畢後(因爲它是在解析期間讀取頭文件)。因此,事實上,你正在使用的HeaderColumnNameTranslateMappingStrategy意味着你有地圖的列 - 這也可以快速創建地圖的一個子集爲需要的列。一旦解析完成後,你就可以通過名稱循環,然後呼籲HeaderColumnNameTranslateMappingStrategy的getColumnIndex方法傳入列的真實姓名。只要你不返回一個空整數,那麼列就在那裏。 –