我有一个包含大约 65 万行的文件。现在我希望使用 LineNumberReader 读取该文件的每一行。
但是,我在将这么多行添加到另一个 3rd 方库时遇到了 outofMemoryError ..
我打算做的是,一次读取 200000 行文件并将这些行添加到 3rd 方库。
我正在使用 LineNumberReader 但我认为整个文件正在被读取,尽管我提供了当行数达到 200000 时打破循环并将这些添加到 3rd 方库的条件。
相同的代码片段:
LineNumberReader lnr=new LineNumberReader(new FileReader(file));
String line=null;
int i=0;
while(flags)
{
while( null != (line = lnr.readLine()) ){
i++;
3rdPartyLibrary.add(line.trim());
if(i==200000)
{
System.out.println("Breaking");
lnr.mark(i);
break;
}
if(i==400000)
{
System.out.println("" );
lnr.mark(i);
break;
}
if(i==600000)
{
System.out.println("BREAKING " );
lnr.mark(i);
break;
}
}
if(line==null)
{
System.out.println(" FLAG");
flags=false;
}
lnr.reset();
}
我打算在这里做的是在第一次迭代中从 0-200000 读取文件。然后读取每一行并添加到第 3 方库中。完成后,从 (200001-400000) 读取另外 200000 行,然后重复相同的活动。
需要帮助..有人可以指导..