6.5 十万行を含むファイルがあります。LineNumberReader を使用して、このファイルのすべての行を読みたいと思います。
ただし、これらの多数の行を別のサードパーティ ライブラリに追加すると、outofMemoryError が発生します。
私がやろうとしているのは、一度に 200000 行のファイルを読み取り、これらの行をサードパーティのライブラリに追加することです。
LineNumberReader を使用していますが、ファイル全体が読み取られていると思いますが、行数が 200000 に達したときにループを中断し、これらをサードパーティのライブラリに追加するという条件を提供しました..
同じコード スニペット:
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 のファイルを読み取ることです。次に、個々の行を読み取り、サードパーティのライブラリに追加します。これが完了したら、(200001-400000) から別の 200000 行を読み取り、同じアクティビティを繰り返します。
助けが必要..誰かが案内してくれませんか..