Je n'ai pas lu ton code, mais généralement, à moins d'avoir des problèmes de fichiers énormes difficiles à gérer en mémoire, le plus simple est de ne pas faire ce genre de choses, mais de tout lire...