在Java中读取大型CSV

我想从CSV读取巨大的数据,包含大约500,000行。我正在使用OpenCSV库。我的代码是这样的

    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();

}

多达200,000条记录,数据被读入User Bean对象列表。但是对于更多的数据,我得到了

java.lang.OutOfMemoryError: Java heap space

我在“ eclipse.ini”文件中有此内存设置

-Xms256m

-Xmx1024m

我正在考虑将大文件拆分为单独文件并再次读取这些文件的解决方案,我认为这是一个冗长的解决方案。

还有什么其他方法可以避免OutOfMemoryError异常。

回答:

逐行读取

像这样的东西

    CSVReader reader = new CSVReader(new FileReader("yourfile.csv"));

String [] nextLine;

while ((nextLine = reader.readNext()) != null) {

// nextLine[] is an array of values from the line

System.out.println(nextLine[0] + nextLine[1] + "etc...");

}

以上是 在Java中读取大型CSV 的全部内容, 来源链接: utcz.com/qa/415783.html

回到顶部