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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 不抛弃不放弃 于 2013-12-8 19:27 编辑

LineNumberReader为什么没打印出行号为0的行呢,我是顶着第一行写的,这个类不是说行号从零开始吗,怎么打印的是从一开始的

1 个回复

倒序浏览
如果你用LineNumberReader的read 或 readLine()方法 每一次读取lineNumber都会+1了,

  1. public int read(char cbuf[], int off, int len) throws IOException {
  2.         synchronized (lock) {
  3.             int n = super.read(cbuf, off, len);

  4.             for (int i = off; i < off + n; i++) {
  5.                 int c = cbuf[i];
  6.                 if (skipLF) {
  7.                     skipLF = false;
  8.                     if (c == '\n')
  9.                         continue;
  10.                 }
  11.                 switch (c) {
  12.                 case '\r':
  13.                     skipLF = true;
  14.                 case '\n':        /* Fall through */
  15.                     lineNumber++;
  16.                     break;
  17.                 }
  18.             }

  19.             return n;
  20.         }
  21.     }


  22. public String readLine() throws IOException {
  23.         synchronized (lock) {
  24.             String l = super.readLine(skipLF);
  25.             skipLF = false;
  26.             if (l != null)
  27.                 lineNumber++;
  28.             return l;
  29.         }
  30.     }
复制代码

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马