挑戰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-輸出

在這裏插入圖片描述
在這裏插入圖片描述

發佈了92 篇原創文章 · 獲贊 285 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章