hi,
i am just trying to print all the 'method' names of java files from my folder. its not showing any error but during testing i face different kinds of problem for each output with same code..
in addition, i might mention how program suppose to work...
->it reads every files line by line and find 1st parentheses ( "(" ), if have any then get the whole line before parentheses. Then locate any return value has or not in those line, if found then the next word should be a method name for that java file.
i followed this:
Quote:
Access modifier--- Return value-- Method Name (parameter...)
or,
Return Value--Method Name()
Code:
String target = "(";
String[] returnValue={"String", "int", "double", "void", "char", "long", "float" };
Map<String, File> names = new HashMap<String, File>();
try{
File directory = new File("C:/JavaFiles"); // where all java files are gathered
File filelist[]= directory.listFiles();
for (File f: filelist) {
FileReader fr = new FileReader (f);
BufferedReader reader = new BufferedReader (fr);
while (reader.ready()){
result=reader.readLine();
if (result.indexOf(target)!= -1 ){
String line = result.substring(0, result.indexOf(target));
Scanner scan=new Scanner(line);
for (int i=0; i<returnValue.length; i++) {
word=scan.findWithinHorizon(returnValue[i], 100);
if(word!=null) {
methodName=scan.next()+scan.findWithinHorizon("", 0);
names.put(methodName, f);
for (String found: names.keySet()){
File file = names.get(found);
System.out.println(found+"\t"+"FileName: "+file.getName());
}
}// end 2nd if
}// end 2nd for
}//end 1st if
}//end while
}//end 1st for
}//end try
catch(Exception e){e.printStackTrace(); }