File Input Output Java

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Grep {
  public static void main(String args[]) throws Exception {
    String regex = "";
    InputStream in = System.in;
    regex = args[0];
    in = new BufferedInputStream(new FileInputStream(args[1]));
    Pattern p = null;
    p = Pattern.compile(regex);
    BufferedReader buff = new BufferedReader(new InputStreamReader(in));
    String a;
    for (a = buff.readLine(); a != null; a = buff.readLine()) {
      Matcher m = p.matcher(a);
      if (m.find()) {
        System.out.println(a);
      }
    }
  }
}