Resumen

Domina el manejo de datos binarios en Node.js con buffers: aprende a crearlos desde un string, reservar memoria con Buffer.alloc, escribir con write y convertir a texto con toString usando UTF-8 y rangos de índices. Ideal para flujos de entrada y salida donde necesitas transformar y leer información de forma precisa.

¿Qué es un buffer en Node.js y para qué sirve?

Un buffer es una estructura que permite trabajar con datos binarios y transformarlos a distintos formatos, como cadenas de texto. En Node.js, la clase Buffer facilita crear, escribir y leer estos datos, algo clave en I/O. Aquí verás cómo partir desde un archivo buffers.js, crear un buffer, modificarlo y extraer información con control de índices.

  • Crea el archivo buffers.js en tu editor de código.
  • Opcional para orden: importa la clase con require('buffer').
  • Ejecuta cada paso con la opción run code del editor.

¿Cómo crear, escribir y leer buffers en JavaScript?

A continuación se muestra el flujo completo: crear desde un string, reservar memoria fija, escribir datos y convertir a texto con UTF-8.

¿Cómo crear un buffer desde un string con UTF-8?

Usa Buffer.from para convertir un string a buffer con un encoder específico.

// Opcional, para mantener orden en el llamado de la clase Buffer
const { Buffer } = require('buffer');

const bufferFromString = Buffer.from('hello world', 'utf-8');
console.log(bufferFromString);
  • Buffer.from crea un buffer a partir del string 'hello world'.
  • Se usa el encoder UTF-8 para la representación del texto.
  • Al imprimir, verás la representación binaria lista para transformaciones.

¿Cómo reservar memoria con Buffer.alloc y escribir datos?

Buffer.alloc crea un buffer de tamaño fijo (en bytes). Luego, write permite escribir un string dentro de ese espacio.

const bufferAlloc = Buffer.alloc(10); // 10 bytes
console.log(bufferAlloc); // buffer vacío con 10 bytes asignados

bufferAlloc.write('node js');
console.log(bufferAlloc); // muestra el contenido escrito y el resto del espacio
  • Se reservan 10 bytes; el buffer mantiene siempre ese tamaño.
  • write('node js') escribe el contenido dentro del espacio disponible.
  • El resto del contenido permanece en el buffer porque la memoria está asignada.

¿Cómo convertir un buffer a string con índices y encoding?

toString devuelve una cadena desde el buffer usando el encoder y rangos de lectura: índice inicial y final.

const bufferToString = bufferAlloc.toString('utf-8', 0, 6);
console.log(bufferToString); // "node j"

// Para leer todo el contenido disponible con el mismo encoder:
console.log(bufferAlloc.toString('utf-8'));
  • Usa UTF-8 y controla los índices: inicio 0 y fin 6.
  • Cambia los rangos para extraer subcadenas, por ejemplo, del 4 al 7.
  • Si omites el índice final, lees todo el contenido del buffer.

Además de los pasos anteriores, aquí se integran las habilidades y conceptos que practicarás:

  • Creación de buffers con Buffer.from y encoder UTF-8.
  • Reserva de memoria con Buffer.alloc y manejo de bytes fijos.
  • Escritura con write y persistencia del tamaño del buffer.
  • Conversión a texto con toString usando índices de lectura.
  • Flujo de trabajo repetible: crear, escribir, leer y ajustar rangos.

¿Te animas a llevarlo a un proyecto práctico con buffers? Comparte tu avance en comentarios y, cuando lo tengas, envía tu pull request con la solución.