Просто вставьте сразу , как только вы прочитаете строку.Поэтому не храните строки в каком-либо массиве в памяти.
Например,
while ((line = reader.readLine()) != null) {
insert(line);
}
Возможно, вы захотите сделать это за одну транзакцию, чтобы вы могли выполнить откат в случае неудачи на половине,На стороне JDBC вы можете рассмотреть PreparedStatement#addBatch()
/ #executeBatch()
для выполнения вставок в пакетах.Пример можно найти в этом ответе .
Обновление : в качестве совершенно другой, но более эффективной альтернативы вы также можете оставить Java вне истории и использовать Средство импорта CSV, предоставляемое SQLite .