黑马程序员技术交流社区

标题: 关于setLineNumber() [打印本页]

作者: 近夜之星    时间: 2013-11-12 00:36
标题: 关于setLineNumber()
本帖最后由 近夜之星 于 2013-11-12 00:38 编辑

setLineNumberpublic void setLineNumber(int lineNumber)
设置当前行号。
参数:lineNumber - 指定行号的 int 值
  1. package day19;
  2. import java.io.*;
  3. class LineNumberReaderDemo
  4. {
  5.         public static void main(String[] args) throws IOException
  6.         {
  7.                 FileReader fr = new FileReader("Cast.java");
  8.                 LineNumberReader lnr = new LineNumberReader(fr);
  9.                 String line = null;
  10.                 lnr.setLineNumber(100);
  11.                 while((line=lnr.readLine())!=null)
  12.                 {
  13.                         System.out.println(lnr.getLineNumber()+":"+line);
  14.                 }
  15.                 lnr.close();
  16.         }
  17. }
复制代码
示例中都是从第一行开始设置,后面依次跟着改变。我的问题是:既然setLineNumber()是设置当前行的行号,怎样用setLineNumber()方法从任意行开始设置,比如第二行或第三行


作者: 零下五度的水    时间: 2013-11-12 03:38
先把你不想设的那段读出来,1,2,3...
然后设行号,set...(100)
然后继续读,101,102,103...
不过目测没什么用。
P.S.
如果你在设行号之前不想带行号打印,可以直接用fr读取数据,
读到你想设行号的地方,再改成lnr
作者: 近夜之星    时间: 2013-11-12 10:20
零下五度的水 发表于 2013-11-12 03:38
先把你不想设的那段读出来,1,2,3...
然后设行号,set...(100)
然后继续读,101,102,103...

你好,比如我想把第5行的行号改成100该怎样做,谢谢,例如下面:
1
2
3
4
100
101
102
....
作者: 近夜之星    时间: 2013-11-12 10:20
零下五度的水 发表于 2013-11-12 03:38
先把你不想设的那段读出来,1,2,3...
然后设行号,set...(100)
然后继续读,101,102,103...

你好,比如我想把第5行的行号改成100该怎样做,谢谢,例如下面:
1
2
3
4
100
101
102
....
作者: 陌上尘    时间: 2013-11-12 11:49
添加一个for循环打印前4行。
然后setLineNumber(100),再接着读取下去,就得到你想要的效果了
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;


                for(int i=0;i<5;i++){
                        if((line=lnr.readLine()!=null)
                        System.out.println(lnr.getLine()+":"+line);
                }

                lnr.setLineNumber(100);
                while((line=lnr.readLine())!=null)
                {
                        System.out.println(lnr.getLineNumber()+":"+line);
                }
                lnr.close();
        }
}

作者: 陌上尘    时间: 2013-11-12 11:53
不好意思,刚才发的有一处笔误,以本帖为准

添加一个for循环打印前4行。
然后setLineNumber(100),再接着读取下去,就得到你想要的效果了
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;


                for(int i=0;i<5;i++){
                        if((line=lnr.readLine()!=null)
                        System.out.println(lnr.getLineNumber()+":"+line);
                }



                lnr.setLineNumber(100);
                while((line=lnr.readLine())!=null)
                {
                        System.out.println(lnr.getLineNumber()+":"+line);
                }
                lnr.close();
        }
}

作者: 近夜之星    时间: 2013-11-12 18:31
陌上尘 发表于 2013-11-12 11:53
不好意思,刚才发的有一处笔误,以本帖为准

添加一个for循环打印前4行。

好的,谢谢,if((line=lnr.readLine())!=null),少了个括号




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2