csv ファイルを検証したい。数値、日付、ブール値、テキスト フィールドを含む Excel ファイルから変換されています。だから私はcsvファイルを検証する必要があります。Csvvalidator を 1 つ使用しましたが、正しく動作しません。
List<Field> list = new ArrayList<Field>();
list.add(new Field(1, Type.TEXT, notOptional)); //emailaddress
list.add(new Field(2, Type.TEXT, notOptional)); //firstname
list.add(new Field(3, Type.TEXT, notOptional)); //middlename
list.add(new Field(4, Type.TEXT, optional)); //lastname
list.add(new Field(5, Type.DATE, optional)); //dob
list.add(new Field(6, Type.TEXT, notOptional)); //gender
list.add(new Field(7, Type.TEXT, optional)); //altemailaddress
list.add(new Field(8, Type.TEXT, optional)); //currentStreet1
list.add(new Field(9, Type.TEXT, optional)); //currentStreet2
list.add(new Field(10, Type.TEXT, optional)); //currentCity
list.add(new Field(11, Type.TEXT, optional)); //currentState
list.add(new Field(12, Type.NUMBER, optional)); //currentPincode
list.add(new Field(13, Type.TEXT, optional)); //permanentStreet1
list.add(new Field(14, Type.TEXT, optional)); //permanentStreet2
list.add(new Field(15, Type.TEXT, optional)); //permanentCity
list.add(new Field(16, Type.TEXT, optional)); //permanentState
list.add(new Field(17, Type.NUMBER, optional)); //permanentPincode
list.add(new Field(18, Type.NUMBER, optional)); //mobile
list.add(new Field(19, Type.NUMBER, notOptional)); //phone
list.add(new Field(20, Type.TEXT, optional)); //emailsubscription
list.add(new Field(21, Type.TEXT, optional)); //mobilesubscription
System.out.println(list.size());
CsvValidator validator = new CsvValidatorImpl(AppConstants.OUTPUT_FILE, list, "|");
Excel と CSV には 21 のフィールドがありますが、コンパイルすると、次のように表示されます。
行 1 は無効です。165 個の必須 21 フィールドが含まれています。
行 2 は無効です。157 個の必須 21 フィールドが含まれています
3 行目は無効で、161 個の必須フィールド 21 個が含まれています。
4 行目は無効です。137 個の必須 21 フィールドが含まれています