File Input Output Java

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class GrepReader extends BufferedReader {
  String pattern;
  public GrepReader(Reader in, String pattern) {
    super(in);
    this.pattern = pattern;
  }
  public final String readLine() throws IOException {
    String line;
    do {
      line = super.readLine();
    } while ((line != null) && line.indexOf(pattern) == -1);
    return line;
  }
  public static void main(String args[]) {
    try {
      GrepReader in = new GrepReader(new FileReader("GrepReader.java"), "GrepReader");
      String line;
      while ((line = in.readLine()) != null)
        System.out.println(line);
      in.close();
    } catch (Exception e) {
      System.err.println(e);
    }
  }
}