2
respostas

Buscar um elemento específico no Stream

Bom pessoal,

Eu estou com um problema ao tentar encontrar um determinado elemento Stream.

Realizei a leitura de um arquivo txt usando o Files.lines(Path), me retornou um coleção de stream, porém preciso encontrar a linha na "Posição" 10, como não é um List para eu usar o get(10), como eu faria com o Stream?

2 respostas

Olá Ana,

Se você precisar só da linha 10, o código abaixo deve resolver. Ele pula (skip) 9 linhas e limita (limit) a varredura ao 9º item.

Files.lines(Path).skip(9).limit(9).forEachOrdered(...);

Se não for esse o caso, tente outras variações do número do skip e do limit. E se, por exemplo, você não usar o limit, a varredura vai até o fim do arquivo txt.

Espero ter ajudado.

Muito bom!

Deu certinho, apenas adicionei o limit para 1, para que retorne apenas a linha que preciso: Files.lines(origem, StandardCharsets.ISO_8859_1).skip(buscar-1).limit(1).forEach(System.out::println)

Obrigada!! :)