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();

		}

	}

}

  

你可能感兴趣的:(java)