有个程序,需要BufferedReader读到最后一行后,然后返回到第n行,因为还要用来做别的用处。
因为以前不太常用这种方法,看了javadoc,public void (int readAheadLimit),于是自己随便填了数字进去,这么做的话,如果数据量很大,肯定会有错误出来,如果数据量很小,又有点浪费,现在不知道怎么改了,特地求教一下,应该怎么写才能让BufferedReader返回某一行呢?给点建议也成,谢谢 代码如下 (buf 就是那个BufferedReader)
int i=0;
strTemp = buf.readline();
buf.(99999);
while ((strTemp != null) && (strTemp.trim().length() != 0)){
i++ ;
strTemp = buf.readLine();
}
buf.reset();
因为以前不太常用这种方法,看了javadoc,public void (int readAheadLimit),于是自己随便填了数字进去,这么做的话,如果数据量很大,肯定会有错误出来,如果数据量很小,又有点浪费,现在不知道怎么改了,特地求教一下,应该怎么写才能让BufferedReader返回某一行呢?给点建议也成,谢谢 代码如下 (buf 就是那个BufferedReader)
int i=0;
strTemp = buf.readline();
buf.(99999);
while ((strTemp != null) && (strTemp.trim().length() != 0)){
i++ ;
strTemp = buf.readLine();
}
buf.reset();
strTemp = buf.readline();
int nMark = 999999;
long size = 0;
buf.(nMark);
while ((strTemp != null) && (strTemp.trim().length() != 0)){
i++ ;
strTemp = buf.readLine();
size += strTemp.length();
if(size>n){
buf.reset();
nMark +=nMark;
buf.(nMark);
buf.skip(size);
}
}
buf.reset();
只是演示一下我的思路,关于效率,skip函数不会浪费太多时间的。