Java小工具===》在目录内查找包含××(字符串)的文件,并显示行号

package search;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

public class KeyWordSearch {
	static String dir = "D:\\workspace\\OPlayer"; // 被查找的目录
	static String keyWord = "init_decoders"; // 被搜索到关键字

	public static void main(String args[]) {
		File file = new File(dir);
		keyWordSearch(file);
	}

	private static void keyWordSearch(File file) {
		File[] files = file.listFiles();
		for (int i = 0; i < files.length; i++) {
			if (files[i].isDirectory()) {
				keyWordSearch(files[i]); // 如果该file是目录,递归
			} else {
				fileSearch(files[i]); // 如果该file是文件,查找
			}
		}
	}

	private static void fileSearch(File file) {
		try {
			BufferedReader br = new BufferedReader(new FileReader(file));
			String temp = "";
			int i = 0;
			while ((temp = br.readLine()) != null) {
				i++;
				if (temp.indexOf(keyWord) != -1) { // 如果改行包含关键字,输出文件名字和行号
					System.out.println(file.getPath() + " --- in line ---> " + i);
					br.close();
					return;
				}
			}
			br.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

  

posted @ 2012-12-06 12:57  oldfeel  阅读(541)  评论(0编辑  收藏  举报