Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

202
Visualizações
Cómo leer una línea aleatoria de un archivo txt nodejs

Tengo un archivo txt con alrededor de 5000 líneas, me gustaría imprimir una línea aleatoria de ese archivo. Intenté usar readline pero no puedo averiguar cómo elegir qué línea imprimir usando números enteros. ¿Cuál sería la forma más rápida de hacer esto sin usar mucha memoria?

Aquí está mi código

 const readline = require("readline"); const fs = require("fs"); const file = readline.createInterface({ input: fs.createReadStream('file.txt'), output: process.stdout, terminal: false }); file.on('line', (line) => { console.log(line); })
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

La solución directa sería:

  1. leer archivo
  2. dividir por \n, guardar en matriz
  3. obtener el número de líneas (== longitud de la matriz)
  4. generar un número aleatorio entre 0 y el número de líneas
  5. matriz de retorno [número_generado]

Pero podría usar bastante memoria si su archivo es realmente grande.

así que sin leer todo el archivo, en la parte superior de mi cabeza: tal vez busque una posición aleatoria, luego lea hasta que presione \n, y luego vuelva a leer hasta \n, luego divida por \n y elija la parte media de la matriz ?

Nota: esto se romperá si la última línea no es seguida por una nueva línea. (si la posición aleatoria está en las dos últimas líneas)

about 4 years ago · Juan Pablo Isaza Relatório

0

dos enfoques aquí:

  1. lea todo el archivo, elija un número aleatorio entre 1 y 5000 y devuelva esa línea (no es bueno para una solución general)
  2. predefina una línea aleatoria y devuélvala al llegar a esa línea.
 const readline = require("readline"); const fs = require("fs"); const file = readline.createInterface({ input: fs.createReadStream('file.txt'), output: process.stdout, terminal: false }); const radnomLineNumber = getRandomInt(5000); let i = 0; file.on('line', (line) => { if (randomLineNumber === i) { console.log(line); return; } i++; });
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda