跟我学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 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号