我有非常大的csv文件,我正在尝试迭代处理。我正在使用opencsv,并且希望使用CsvToBean以便可以动态地从数据库中设置列映射。我的问题是如何在不抓取整个文件并将其放入列表的情况下完成此操作。我正在尝试防止内存错误。
我目前正在将整个结果集传递到列表中,如下所示。
但我发现了这个迭代器方法,我想知道它是否只会逐行迭代而不是一次性迭代整个文件?
所以我的问题是,迭代器和列表之间有什么区别?
我目前正在将整个结果集传递到列表中,如下所示。
List<MyOption> myObjects = csv.parse(strat, getReader("file.txt"));
for (MyObject myObject : myObjects) {
System.out.println(myObject);
}
但我发现了这个迭代器方法,我想知道它是否只会逐行迭代而不是一次性迭代整个文件?
Iterator myObjects = csv.parse(strat, getReader("file.txt")).iterator();
while (myObjects.hasNext()) {
MyObject myObject = (MyObject) myObjects.next();
System.out.println(myObject);
}
所以我的问题是,迭代器和列表之间有什么区别?