public void start() throws InterruptedException {
        String line = nextLine();

        while (line != null) {
            if (Thread
                    .currentThread()
                    .isInterrupted()) {
                throw new InterruptedException("file adder interrupted");
            }
            Path f = Paths.get(root.toString(), line);
            if (!Files.exists(f)) {
                LOG.warn("File doesn't exist: {}", f.toAbsolutePath());
                line = nextLine();
                continue;
            }
            if (Files.isDirectory(f)) {
                LOG.warn("File is a directory: {}", f.toAbsolutePath());
                line = nextLine();
                continue;
            }
            tryToAdd(new FSFileResource(root, f));
            line = nextLine();
        }
    }
Constructor for a crawler that reads a list of files to process.
<p>
The list should be paths relative to the root.

@param fileQueue    queue for batch
@param numConsumers number of consumers
@param root         root input director
@param list         text file list (one file per line) of paths relative to
                    the root for processing
@param charset      charset of the file
@throws IOException
tika-batch/src/main/java/org/apache/tika/batch/fs/FSListCrawler.java