//TextFile 类
import java.util.*;
import java.io.*;
public class TextFile extends ArrayList
{
/**
* @param args
*/
public static String read(String filename) throws IOException
{
BufferedReader br = new BufferedReader(new FileReader(filename));
StringBuffer sb = new StringBuffer();
String s;
while ((s = br.readLine()) != null)
{
sb.append(s);
sb.append("/n");
}
br.close();
return sb.toString();
}
public TextFile(String filename) throws IOException
{
super(Arrays.asList(read(filename).split("/n")));
}
public static void main(String[] args)
{
// TODO 自动生成方法存根
}
}
//在JGrep中开始查找
import java.util.regex.*;
import net.icafe8.file.TextFile;
import java.util.*;
import java.io.*;
public class JGrep
{
public static void main(String[] args)
{
// TODO 自动生成方法存根
if (args.length<2)
{
System.out.println("Usage: java JGrep filename regualexpression");
System.exit(0);
}
Pattern p = Pattern.compile(args[1]);
try
{
ListIterator it = new TextFile(args[0]).listIterator();
while (it.hasNext())
{
Matcher m = p.matcher((String)it.next());
while (m.find())
{
System.out.println(it.nextIndex() + ":" + m.group() + ":" + m.start());
}
}
}catch (IOException e)
{
throw new RuntimeException(e);
}
}
}