黑马程序员技术交流社区
标题:
关于setLineNumber?
[打印本页]
作者:
↙五线谱╲
时间:
2013-12-6 20:13
标题:
关于setLineNumber?
package day19;
import java.io.*;
class LineNumberReaderDemo
{
public static void main(String[] args) throws IOException
{
FileReader fr = new FileReader("Cast.java");
LineNumberReader lnr = new LineNumberReader(fr);
String line = null;
lnr.setLineNumber(100);
while((line=lnr.readLine())!=null)
{
System.out.println(lnr.getLineNumber()+":"+line);
}
lnr.close();
}
}
示例中都是从第一行开始设置,后面依次跟着改变。我的问题是:既然setLineNumber()是设置当前行的行号,怎样用setLineNumber()方法从任意行开始设置,比如第二行或第三行
作者:
25343215
时间:
2013-12-6 20:15
lnr.setLineNumber(100);
这段代码不是已经设置,从第100,开始计数了吗?
作者:
肖川
时间:
2013-12-7 10:34
但是你调用的是LineNumberReader的readLine()方法来获取行号,所以,我们看看他的readLine()方法怎么写的:
public String readLine() throws IOException {
synchronized (lock) {
String l = super.readLine(skipLF);
skipLF = false;
if (l != null)
lineNumber++;
return l;
}
}
复制代码
你看,在返回行号之前要加一,对吧?也就是说你设置的是100开始,但是你读取一行过后返回的值是100+1,所以是从101开始打印的,懂了?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2