Довольно легко написать самому. Откройте файл с помощью FileInputStream и InputStreamReader, который использует UTF-8. Оберните его в BufferedReader, который вы можете перебирать, используя readLine (). Получить каждую строку в виде строки. Используйте регулярные выражения, чтобы разбить его на поля.
Единственная сложная часть - это построение регулярных выражений, чтобы они не рассматривали запятые, заключенные в кавычки, как разделители полей.
Подход, описанный выше, немного неэффективен, но достаточно быстр для большинства приложений. Если у вас есть реальные требования к производительности, вам нужно что-то, что проходит через символы. Я написал один несколько лет назад, который использует конечный автомат, который работал нормально.