一、遇到空行
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);
}
上面的代码将输出文件的每一行,并输出行号和行的内容。