深入了解LinenumberReader

发布时间:2023-05-20

一、遇到空行

LinenumberReader是一个BufferedReader子类,用于支持行号。当LinenumberReader读取到一个空行时,它会将行号计数器加1。下面是一个示例代码:

LinenumberReader lnr = new LinenumberReader(new FileReader("example.txt"));
String line;
while ((line = lnr.readLine()) != null) {
    if (line.isEmpty()) {
        System.out.println("空行");
    } else {
        System.out.println(lnr.getLineNumber() + ": " + line);
    }
}

当读取到空行时,getLineNumber()的返回值会加1。

二、LinenumberReader.skip()

LinenumberReader.skip()方法用于跳过指定数量的字符。例如:

LinenumberReader lnr = new LinenumberReader(new FileReader("example.txt"));
lnr.skip(10); //跳过前10个字符
String line;
while ((line = lnr.readLine()) != null) {
    System.out.println(lnr.getLineNumber() + ": " + line);
}

上面的代码将从文件的第11个字符开始读取内容,并进行行号计数。

三、LinenumberReader读取指定行

LinenumberReader.getLine(int lineNum)方法用于读取指定行的内容。例如:

LinenumberReader lnr = new LinenumberReader(new FileReader("example.txt"));
String line;
while ((line = lnr.readLine()) != null) {
    if (lnr.getLineNumber() == 5) {
        System.out.println("第5行的内容:" + line);
    }
}

上面的代码将读取文件的第5行的内容。

四、LinenumberReader获取文件行数

LinenumberReader可以用于获取文件的行数。例如:

LinenumberReader lnr = new LinenumberReader(new FileReader("example.txt"));
int lineCount = 0;
while (lnr.readLine() != null) {
    lineCount++;
}
System.out.println("文件行数:" + lineCount);

上面的代码将输出文件的行数。

五、LinenumberReader为什么要加一

LinenumberReader在读取完一行后,会将行号计数器加1。这是为了使行号从1开始计数,而不是从0开始计数。

六、LinenumberReader指出代码问题

LinenumberReader有一个问题,就是它无法处理Windows换行符。在Windows系统中,换行符是"\r\n",而不是"\n"。因此,在使用LinenumberReader时,需要注意换行符的问题,避免出现行数计数错误的情况。

七、LinenumberReader skip为啥要加

LinenumberReader.skip()方法的参数是需要跳过的字符数。为什么要在使用skip()时加上前面已经读取的字符数呢?这是因为读取操作是会将已经读取的字符数计入LineNumberReader的计数器中的。

八、LinenumberReader中skip

当使用LinenumberReader时,可以通过skip()方法快速跳过一定数量的字符。例如:

LinenumberReader lnr = new LinenumberReader(new FileReader("example.txt"));
int skipChars = 10;
while (lnr.skip(skipChars) > 0) {
    System.out.println("跳过了" + skipChars + "个字节");
}

上面的代码将跳过文件的前10个字符,然后输出一条跳过了10个字节的消息。

九、LinenumberReader.readline

LinenumberReader.readLine()方法用于读取文件的一行,并将行号计数器加1。例如:

LinenumberReader lnr = new LinenumberReader(new FileReader("example.txt"));
String line;
while ((line = lnr.readLine()) != null) {
    System.out.println(lnr.getLineNumber() + ": " + line);
}

上面的代码将读取文件的每一行,并输出行号和行的内容。

十、LinenumberReader.getlinenumber

LinenumberReader.getLineNumber()方法用于获取当前行号。例如:

LinenumberReader lnr = new LinenumberReader(new FileReader("example.txt"));
String line;
while ((line = lnr.readLine()) != null) {
    System.out.println(lnr.getLineNumber() + ": " + line);
}

上面的代码将输出文件的每一行,并输出行号和行的内容。