加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 带有空行的缓冲读取器readLine()

发布时间:2020-12-15 03:00:06 所属栏目:Java 来源:网络整理
导读:我正在使用缓冲读取器从文本文件中一次抓取一行.我也试图使用跟踪整数从文本文件中获取行号.不幸的是BufferedReader正在跳过空行(只有/ n或回车). 有没有更好的方法来解决这个问题?会使用扫描仪吗? 示例代码: int lineNumber = 0;while ((s = br.readLine
我正在使用缓冲读取器从文本文件中一次抓取一行.我也试图使用跟踪整数从文本文件中获取行号.不幸的是BufferedReader正在跳过空行(只有/ n或回车).

有没有更好的方法来解决这个问题?会使用扫描仪吗?

示例代码:

int lineNumber = 0;
while ((s = br.readLine()) != null) {
    this.charSequence.add(s,++lineNumber);
}

解决方法

我无法重现你声称BufferedReader跳过空行;它应该没有.

以下是显示空行不仅仅被跳过的片段.

java.io.BufferedReader

String text = "line1nnnline4";
    BufferedReader br = new BufferedReader(new StringReader(text));
    String line;
    int lineNumber = 0;
    while ((line = br.readLine()) != null) {
        System.out.printf("%04d: %s%n",++lineNumber,line);
    }

java.io.LineNumberReader

String text = "line1nnnline4";
    LineNumberReader lnr = new LineNumberReader(new StringReader(text));
    String line;
    while ((line = lnr.readLine()) != null) {
        System.out.printf("%04d: %s%n",lnr.getLineNumber(),line);
    }

java.util.Scanner

String text = "line1nnnline4";
    Scanner sc = new Scanner(text);
    int lineNumber = 0;
    while (sc.hasNextLine()) {
        System.out.printf("%04d: %s%n",sc.nextLine());
    }

以上任何代码段的输出是:

0001: line1
0002: 
0003: 
0004: line4

相关问题

> How to get line number using scanner – LineNumberReader扫描仪组合!
> How to read a string line per line
> In Java,how to read from a file a specific line,given the line number?
> Read a specific line from a text file
> Validating input using java.util.Scanner – 有很多例子
> what do these symbolic strings mean: %02d %01d ?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读