有点长。。[Java] 纯文本查看 复制代码 import java.io.*;
//带行号的缓冲输入字符流
class BufferedLineNum extends BufferedReader{
//在内部维护一个被装饰类的引用。
BufferedReader bufferedReader;
//定义行号
int count = 1;
//构造函数
public BufferedLineNum(BufferedReader bufferedReader){
super(bufferedReader);// 注意: 该语句没有任何的作用,只不过是为了让代码不报错。
this.bufferedReader = bufferedReader;
}
//重写BufferedReader的readLine方法实现行号功能
public String readLine() throws IOException{
String line = bufferedReader.readLine();
if(line==null){
return null;
}
line = count+" "+line;
count++;
return line;
}
}
//带分号缓冲输入字符流
class BufferedSemi extends BufferedReader{
//在内部维护一个被装饰类的引用。
BufferedReader bufferedReader;
//构造函数
public BufferedSemi(BufferedReader bufferedReader){
super(bufferedReader);// 注意: 该语句没有任何的作用,只不过是为了让代码不报错。
this.bufferedReader = bufferedReader;
}
//重写BufferedReader的readLine方法实现每行加分号功能
public String readLine() throws IOException{
String line = bufferedReader.readLine(); //如果这里的ReadLine方法是调用了buffereLineNum的readLine方法,问题马上解决。
if(line==null){
return null;
}
line = line +";";
return line;
}
}
//缓冲类带双引号
class BufferedQuto extends BufferedReader{
//在内部维护一个被装饰的类
BufferedReader bufferedReader;
//构造方法
public BufferedQuto(BufferedReader bufferedReader){ //new BufferedSemi2();
super(bufferedReader) ; //只是为了让代码不报错..
this.bufferedReader = bufferedReader;
}
//重写BufferedReader的readLine方法实现加双引号功能
public String readLine() throws IOException{
String line = bufferedReader.readLine(); //如果这里的ReadLine方法是调用了buffereLineNum的readLine方法,问题马上解决。
if(line==null){
return null;
}
line = "\""+line +"\"";
return line;
}
}
public class Demo {
public static void main(String[] args) throws IOException {
File file = new File("F:\\Demo1.java");
FileReader fileReader = new FileReader(file);
//建立缓冲输入字符流
BufferedReader bufferedReader = new BufferedReader(fileReader);
//建立带行号的缓冲输入字符流
BufferedLineNum bufferedLineNum = new BufferedLineNum(bufferedReader);
//带分号的缓冲输入字符流
BufferedSemi bufferedSemi = new BufferedSemi(bufferedLineNum);
//带双引号的缓冲输入字符流
BufferedQuto bufferedQuto = new BufferedQuto(bufferedSemi);
String line = null;
while((line = bufferedQuto.readLine())!=null){
System.out.println(line);
}
}
}
|