package com.zyf.day21.other;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
//BufferedReader是不是拓展了FileReader的功能
//BufferedWriter也是拓展了FileWriter的功能
//需求1:编写一个类扩展BufferedReader的功能,增强readLine方法返回的字符串带有行号
//需求2:编写一个类扩展BufferedReader的功能,增强readLine方法返回的字符串带有分号
//需求3:编写一个类扩展BufferedReader的功能,增强readLine方法返回的字符串带有双引号
//需求4:编写一个类扩展BufferedReader的功能,增强readLine方法返回的字符串带有 行号 +分号
//需求5:编写一个类扩展BufferedReader的功能,增强readLine方法返回的字符串带有 分号 +双引号
//需求6:编写一个类扩展BufferedReader的功能,增强readLine方法返回的字符串带有 行号 + 双引号
//需求7:编写一个类扩展BufferedReader的功能,增强readLine方法返回的字符串带有 行号 + 分号 + 双引号
class BufferedLineNum extends BufferedReader{
public BufferedLineNum(Reader in) {
super(in);
// TODO Auto-generated constructor stub
}
//行号
int count = 1;
public String readLine() throws IOException{
String line = super.readLine();
if(line == null){
return null;
}
line = count + ": " +line;
count++;
return line;
}
}
//带分号的缓冲字符流
class BufferedSemi extends BufferedReader{
public BufferedSemi(Reader in) {
super(in);
// TODO Auto-generated constructor stub
}
@Override
public String readLine() throws IOException {
// TODO Auto-generated method stub
String line = super.readLine();
if(line==null){
return null;
}
line = line + ";";
return line;
}
}
//带双引号的缓冲输入字符流
class BufferedQuto extends BufferedReader{
public BufferedQuto(Reader in) {
super(in);
// TODO Auto-generated constructor stub
}
@Override
public String readLine() throws IOException {
// TODO Auto-generated method stub
String line = super.readLine();
if(line == null){
return null;
}
line = "\"" + line + "\"";
return line;
}
}
public class demo1 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
File file = new File("D:\\other\\Demo2.java");
FileReader fileReader = new FileReader(file);
//BufferedReader bufferedReader = new BufferedReader(fileReader);
//建立带行号的缓冲输入字符流
BufferedLineNum bufferedLineNum = new BufferedLineNum(fileReader);
//带有分号的缓冲字符流
BufferedSemi bufferedSemi = new BufferedSemi(fileReader);
//带有双引号的缓冲字符流
BufferedQuto bufferedQuto = new BufferedQuto(fileReader);
String line = null;
while((line = bufferedQuto.readLine())!=null){
System.out.println(line);
}
}
}
通过继承类实现
最新推荐文章于 2024-05-03 15:25:14 发布