Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

487
Vistas
NodejS Leer/Escribir datos binarios a/desde archivo

Muy bien, tengo una cadena con datos binarios ("111011 10001, etc."), y estoy tratando de guardarla en un archivo para que ellos la lean en otro archivo usando flujos, el problema es que el flujo está cortando los datos off (el número binario final en el fragmento se corta) ingrese la descripción de la imagen aquí

Así es como envío los datos al archivo (leo un archivo, lo codifico con el codificador golombRice y lo almaceno en un archivo, usando fragmentos de datos)

 const writer = fs.createWriteStream( `./encodedAndDecoded/encoded${filename}`, { encoding: "binary", } ); const reader = fs.createReadStream(`./silesia/${filename}`, { encoding: "base64", }); await new Promise((resolve, reject) => { reader.on("data", (chunk) => { writer.write(Buffer.from(golombRiceEncoding(chunk, 3))); }); reader.on("end", () => { writer.end(); resolve(); }); });

Así es como lo estoy leyendo (leyendo el archivo codificado, decodificándolo con el codificador golombRice y almacenándolo en un archivo, usando fragmentos de datos, el problema con esto es que los fragmentos no tienen los datos binarios completos porque el la corriente lo corta)

 const writer = fs.createWriteStream(`./encodedAndDecoded/decoded${filename}`); const reader = fs.createReadStream(`./encodedAndDecoded/encoded${filename}`, { encoding: "binary", }); await new Promise((resolve, reject) => { reader.on("data", (chunk) => { writer.write(Buffer.from(golombRiceDecoding(chunk, 3), "base64")); }); reader.on("end", () => { writer.end(); resolve(); }); });

¿Se pregunta si hay una manera de hacer que lea los datos usando flujos, pero sin cortar un número binario? No me importa si lee x a la vez, el problema es cuando corta un número binario, invalidando los datos al decodificar. Gracias

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Su esquema de compresión particular que está tratando de decodificar parece ser un esquema de bytes variables. Por lo tanto, si un límite de fragmento no se alinea perfectamente con el tamaño de una pieza de compresión de bytes variables, su biblioteca de descompresión fallará.

Para decodificar algo como esto sobre la marcha, debe crear una lógica directamente en el decodificador que reconozca cuándo solo tiene una parte parcial de los datos y luego la almacena en búfer para combinarla con la siguiente porción de datos que llega. Debido a que la compresión es de byte variable, no puede saber dónde están los límites adecuados sin ser parte de la lógica de descompresión.

O bien, puede dejar de decodificar sobre la marcha y almacenar en memoria intermedia todos los datos comprimidos y luego descomprimirlos todos a la vez cuando tenga todos los datos (entonces no tendrá que preocuparse por los límites de fragmentos).

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda