Instead of: 
ArrayList<String> trackedEvents = new ArrayList<String>();
trackedEvents = getTrackedEventsFromFile(harDirPath+listOfHarFiles.get(i));
finalTrackedEvents.addAll(trackedEvents);

Can you do something like: finalTrackedEvents.addAll(etTrackedEventsFromFile(harDirPath+listOfHarFiles.get(i));

I don't know if it is good idea to initialize ArrayList inside loop, that is really a placeholder for something that you can pass directly