Используйте парсер CSV в uniVocity-parsers читать ваши файлы.
У меня был быстрый взгляд на ваш файл, и вы можете конвертировать их «нет», «да» и значения «None» для булева/нуль очень легко:
ObjectRowListProcessor rowProcessor = new ObjectRowListProcessor();
rowProcessor.convertFields(Conversions.toBoolean("yes", "no")).set("metformin-rosiglitazone","metformin-pioglitazone","change","diabetesMed","readmitted")); //and all other fields where this makes sense.
rowProcessor.convertFields(Conversions.toLowerCase(), Conversions.toNull("none", "?")).set("another field", "and another field");
CsvParserSettings parserSettings = new CsvParserSettings();
parserSettings.setRowProcessor(rowProcessor);
parserSettings.setHeaderExtractionEnabled(true);
CsvParser parser = new CsvParser(parserSettings);
//the rowProcessor will be executed here.
parser.parse(YOUR_INPUT_HERE);
List<Object[]> rows = rowProcessor.getRows();
Если вы предпочитаете объекты с аннотациями, вы можете использовать BeanListProcessor
, как подробно here. Возможно, это будет лучший подход для вас.
Раскрытие информации: Я являюсь автором этой библиотеки. Это бесплатно и бесплатно (лицензия Apache V2.0).