A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 近夜之星 中级黑马   /  2013-11-12 00:36  /  3361 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 近夜之星 于 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()方法从任意行开始设置,比如第二行或第三行

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

7 个回复

倒序浏览
先把你不想设的那段读出来,1,2,3...
然后设行号,set...(100)
然后继续读,101,102,103...
不过目测没什么用。
P.S.
如果你在设行号之前不想带行号打印,可以直接用fr读取数据,
读到你想设行号的地方,再改成lnr

点评

感谢回答  发表于 2013-11-12 08:06
回复 使用道具 举报
零下五度的水 发表于 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 03:38
先把你不想设的那段读出来,1,2,3...
然后设行号,set...(100)
然后继续读,101,102,103...

你好,比如我想把第5行的行号改成100该怎样做,谢谢,例如下面:
1
2
3
4
100
101
102
....
回复 使用道具 举报
添加一个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();
        }
}
回复 使用道具 举报
不好意思,刚才发的有一处笔误,以本帖为准

添加一个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 11:53
不好意思,刚才发的有一处笔误,以本帖为准

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

好的,谢谢,if((line=lnr.readLine())!=null),少了个括号
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马