跟我学IO(LineNumberReader类)

Java IO中的LineNumberReader类继承自BufferedReader,也就是说该类继承了BufferedReader的高级功能,每次可以读取一行数据。LineNumberReader类增加了获取和设置行号的功能。

Java IO中的LineNumberReader类继承自BufferedReader,也就是说该类继承了BufferedReader的高级功能,每次可以读取一行数据。LineNumberReader类增加了获取和设置行号的功能。默认情况下,行编号从 0 开始。该行号随数据读取在每个行结束符处递增,并且可以通过调用 setLineNumber(int) 更改行号。但要注意的是,setLineNumber(int) 不会实际更改流中的当前位置;它只更改将由 getLineNumber() 返回的值。 

可认为行在遇到以下符号之一时结束:换行符(' ')、回车符(' ')、回车后紧跟换行符。

实例:读取document目录下面的reader.txt文件,然后输出读取的每一行数据且在输出数据前加上行号。

package io.reader;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;

public class LineNumberReaderTest {
	
	public static void main(String[] args) {
		LineNumberReader reader = null;
		try {
			reader = new LineNumberReader(
					new InputStreamReader(
							new FileInputStream("document/reader.txt")));
			String line = "";
			// 获取行号
			int lineNumber = reader.getLineNumber();
			while ( (line = reader.readLine()) != null ) {
				// 输出读到的行号和字符行
				System.out.println(lineNumber + ": " + line);
				lineNumber = reader.getLineNumber();
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if ( null != reader ) {
				try {
					reader.close();
					reader = null;
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
	
}

输出结果:

0: 静夜思
1: 床前明月光,疑是地上霜。
2: 举头望明月,低头思故乡。
活着就要学习,学习不是为了活着。 —— 培根
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号