java.util.Iterator é uma classe de objetos descartáveis de iteração seqüencial unidirecional. No caso,
org.apache.commons.io.FileUtils.iterateFiles(...) está retornando um
Iterator que passa por todos os arquivos no caminho especificado, recursivamente (funciona também se for especificado somente um arquivo).
Esse
approach de ler o conteúdo de todos os arquivos no DVD tem certas limitações que em determinados casos tornam-o inadequado. Nem sempre
todos os dados pertinentes são acessíveis por registros (
entries) em um sistema de arquivos. Seria melhor ler
RAW data, mas não sei programar isto. Também não sei se
subchannel data entra na categoria
RAW data ou é algo à parte - relevante no caso de jogos com proteções (e.g. Safedisc, Securom, Laserlok), embora de qualquer modo as versões mais recentes sejam fisicamente intratáveis pelo menos pela maioria dos leitores e a única saída seja crackear o jogo instalado no HD ou quando carregado em memória. No caso de DVD de filmes, se houver CSS (proteção), deve ser necessário quebrá-la (e.g. AnyDVD) para que o programa seja interessante.
Update: tá pensando em gravar DVD por um programa em Java?

hehe Um jeito seria usar JNI e interfacear com a API do Nero... (mas isso é Windows

)