final StringFinder scanner = new StringFinder(targetString);
// find
for (final File file : files) {
final String str = IOUtils.readEntireFile(file);
final StringMatcher sm = scanner.matcher(str);
LineNumberIndex index = null;
// find matching strings
while (sm.find()) {
if (index == null) index = new LineNumberIndex(str);
final int off = sm.getStart();
final int lineOffset = index.getLineNumber(off);
final String line = index.getLine(off);
final StringMatch match = new StringMatch(file, line, lineOffset, off);
visitor.found(match);
}