package pkg;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Find {
//所要查询的被调用的类;
private String stringToFind="com.ebao.life.report.domain.db.DBean;";
//调用模块;
private String modueName="";
private String tempStr=null;
//某一目录下是否调用了stringToFind
public void findInDir(File dir)
{
File files[];
int i=0;
String temp1="",temp2="";
//depth++;
files=dir.listFiles();
for(i=0;i<files.length;i++)
{
if(files[i].isDirectory())
{
/*if(depth==2&&(!files[i].getName().trim().equals("java"))&&(!files[i].getName().trim().equals("test")))
{
//System.out.println(files[i].getName().trim());
continue;
}*/
findInDir(files[i]);
}
else
{
temp1=files[i].getName().toString().trim();
temp2=temp1.substring(temp1.lastIndexOf(".")+1, temp1.length()).toLowerCase();
if("java".equals(temp2))
{
findInFile(files[i]);
}
}
}
}
//在某一文件中查找是否调用了stringToFind
private void findInFile(File file)
{
int line=0,i;
BufferedReader reader=null;
String arrayStr[],temp[];
String modueStr=null;
File f=new File("D:\\result.txt");
try
{
reader=new BufferedReader(new FileReader(file));
while((tempStr=reader.readLine())!=null)
{
tempStr=tempStr.trim();
arrayStr=tempStr.split(" ");
line++;
if(arrayStr[0].equals("import"))
{
for(i=1;i<arrayStr.length;i++)
{
if(arrayStr[i].equals(""))
continue;
else
{
modueStr=arrayStr[i];
break;
}
}
}
if((arrayStr[0].trim().equals("import"))&&(modueStr.equals(stringToFind)))
{
temp=file.getPath().toString().trim().split("\\\\");
for(i=0;i<temp.length;i++)
{
if(temp[i].equals("life_code")&&(temp.length-2>=i))
{
modueName=temp[i+1];
}
}
System.out.println("\n\n");
System.out.println("调用模块:"+modueName+"\n");
System.out.println("文件名:"+file.getName()+"\n");
System.out.println("文件路径:"+file.getPath().toString()+"\n");
System.out.println("第"+line+"行"+"\n");
System.out.println("\n");
FileWriter fw =new FileWriter(f,true);
fw.write("调用模块:"+modueName+"\r\n");
fw.write("文件名:"+file.getName()+"\r\n");
fw.write("文件路径:"+file.getPath().toString()+"\r\n");
fw.write("第"+line+"行"+"\r\n");
fw.write("\r\n\r\n");
fw.flush();
fw.close();
}
}
reader.close();
}
catch(IOException ie){
ie.printStackTrace();
}
finally
{
if(reader!=null)
{
try
{
reader.close();
}
catch(IOException ie)
{
ie.printStackTrace();
}
}
}
}
}