Bonjour,
Je cherche à spliter un fichier en batchs, mais j'ai besoin de parcourir chaque batch plusieurs fois. Je cherche donc à avoir un Iterator<Iterable<Row>>, ou Row représente une ligne du fichier.
Si j'utilise Iterables.paritition() de Guava, je recois un Iterable<List<Row>>. Ca répond à mon problème pour des petits batchs, mais chaque batch est copié en mémoire dans une liste. Je voudrais éviter cette copie mémoire.
J'imagine une solution avec des outils bas niveaux sur le fichier, de type fseek et frewind : quand on appelle iterator() sur l'Iterable<Row> représentant un batch, je reviens sur la ligne de début du batch.
- Connaissez-vous une solution toute faite ?
- Existe-t'il des FileReader qui puissent revenir à une ligne antérieure ?
- Quelles fonction bas niveaux de lecture de fichier existent en Java ?
Merci d'avance.
Partager