挑战100道编程题(第7道)【编写一个字符输入流的包装类,通过这个包装类对底层字符输入流进行包装,让程序通过这个包装类读取某个文本文件,能够在读取的每行前面都加上有行号和冒号】

01-题目

请编写一个字符输入流的包装类,通过这个包装类对底层字符输入流进行包装,让程序通过这个包装类读取某个文本文件(例如,一个java源文件)时,能够在读取的每行前面都加上有行号和冒号。

02-思路

  1. 通过file读取文件路径。
  2. 判断该file是否存在,不存在抛出异常。
  3. 根据FileReader读取文件。
  4. 编写一个字符输入流的包装类。

03-代码

package com.eleven;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;

/**
 * 请编写一个字符输入流的包装类,通过这个包装类对底层字符输入流进行包装,
 * 让程序通过这个包装类读取某个文本文件(例如,一个java源文件)时,能够在读取的每行前面都加上有行号和冒号。
 * 思路:
 * 1.通过file读取文件路径。
 * 2.判断该file是否存在,不存在抛出异常。
 * 3.根据FileReader读取文件。
 * 4.编写一个字符输入流的包装类。
 * 
 * @author sywangu
 *
 */
public class SixDemo {
	public static void main(String[] args) {
		File file = new File("C:\\Users\\sywangu\\Desktop\\aa.txt");
		if (file.exists()) {
			FileReader fr;
			try {
				fr = new FileReader(file);
				BufferUnit br = new BufferUnit(fr);
				String str = "";
				while ((str = br.readLine())!=null) {
					System.out.println(str);
				}
				
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			catch (IOException e) {

                e.printStackTrace();
            }
		}
	}

}
/**
 * 字符输入流的包装类
 * @author sywangu
 *
 */
class BufferUnit extends BufferedReader{
	private int row;
	

	public BufferUnit(Reader in) {
		super(in);
		this.row = 1;
	}
	
	public String readLine() throws IOException {
		String s = super.readLine();
		if (s != null) {
			s = this.row + ":" +s;
			this.row++;
		}
		return s;
	}
	
}

04-输出

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值