Java:如何阅读大量记录(> 10k)

时间:2016-09-18 15:45:44

标签: java arraylist java-io

寻找最佳实践来逐行读取文件,该文件具有> 10条记录并将其存储在ArrayList中。

我的程序能够读取3.5k记录并忽略其余记录。

URL cityurl = ClassLoader.getSystemResource(citypath);
citybr = new BufferedReader(new FileReader(cityurl.getFile()));
for (String city = citybr.readLine(); city != null; city = citybr.readLine()) {
    citycountryairport.add(citybr.readLine());
}

提前致谢!!

1 个答案:

答案 0 :(得分:1)

BufferedReader是读取大文件的不错选择,因为它可以缓冲文件,从而避免将整个文件加载到内存中,请参阅BufferedReader Doc

每次致电

readLine();

在您的代码更改中读取文件的下一行:

citycountryairport.add(citybr.readLine());

到:

citycountryairport.add(city);

否则行读取的行

city = citybr.readLine()

不会添加到您的列表中,因为您从未将String city 添加到列表中。