Leia grande CSV em java
Eu quero ler dados enormes de CSV, contendo cerca de 500.000 linhas. Eu estou usando a biblioteca OpenCSV para isso. Meu código para isso é assim
CsvToBean<User> csvConvertor = new CsvToBean<User>();
List<User> list = null;
try {
list =csvConvertor.parse(strategy, new BufferedReader(new FileReader(filepath)));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Até 200.000 registros, os dados são lidos na lista de objetos do bean User. Mas para dados mais do que isso eu estou recebendo
java.lang.OutOfMemoryError: Java heap space
Eu tenho essa configuração de memória no arquivo "eclipse.ini"
-Xms256m
-Xmx1024m
Eu estou pensando em uma solução de dividir o arquivo enorme em arquivos separados e ler esses arquivos novamente, o que eu acho que é uma solução demorada.
Existe alguma outra maneira, pelo qual eu possa evitar a exceção OutOfMemoryError.