This Java project provides a dynamic CSV data validation tool. It allows you to validate CSV files against custom rules and ensure data integrity. Whether you're dealing with financial records, user data, or any other structured data in CSV format, this tool has got you covered! 🚀
- Dynamic Rules: Define your own validation rules based on column names, data types, and specific conditions.
- Efficient Processing: Utilizes efficient algorithms to process large CSV files without consuming excessive memory.
-
Clone this repository:
git clone https://github.com/CraigSDel/csv-validator.git
-
Build the project:
cd csv-validator mvn clean install
-
Create a list of validators to validate the data in a CSV:
List<Validator> validators = new ArrayList<>(); validators.add(StringValidator.builder().columnDescription("channel_title").build()); validators.add(IntegerValidator.builder().columnDescription("category_id").build()); validators.add(DateValidator.builder().columnDescription("publish_time").validationPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").build()); validators.add(LinkValidator.builder().columnDescription("thumbnail_link").validationPattern("^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]").build());
-
Create a Data validator:
DataValidator dataValidator = DataValidator.builder().columnValidators(columnValidators).firstRowIsHeader(Boolean.TRUE).delimiter(",").build(); assertEquals(0, dataValidator.validateCsvDataReturningFailures(getFile()).size());