A Buffer is a space in memory, typically temporary, that safely stores data during the transfer between two entities or processes. In JavaScript, the Buffer
class, available in Node.js, enables developers to work with binary data – data represented by a sequence of bytes rather than a string of characters.
The Buffer class is a global class in Node.js, meaning it’s unnecessary to use require(‘buffer’).Buffer to create a new Buffer. Instead, you can simply call the Buffer from anywhere in your Node.js application.
Creating Buffers:
Buffers can be created in several ways:
Buffer.alloc(size)
: Allocates a new Buffer of a specified size, in bytes, initialized to zeroes to prevent sensitive data leaks.Buffer.allocUnsafe(size)
: Allocates a new Buffer of a specified size, in bytes, without initializing the allocated memory. This method is faster thanBuffer.alloc
but risks leaking sensitive data.Buffer.from(array)
: Creates a new Buffer from an array of bytes (numbers between 0 and 255).Buffer.from(string[, encoding])
: Creates a new Buffer containing the provided string. Theencoding
parameter is optional and specifies the character encoding (default is ‘utf8’).
Working with Buffers:
Once you have a Buffer, you can manipulate and retrieve data from it using various methods. For instance, you can read from or write to the Buffer, convert it to JSON, slice it, or copy it to another Buffer.
Handling Binary Data with Buffer
The following example demonstrates reading a file’s binary data, modifying it, and writing it back to a new file:
const fs = require('fs');
//Learning @ Freshers.in
// Read a file
fs.readFile('example.txt', (err, data) => {
if (err) throw err;
console.log('Original binary data:', data);
// Create a buffer from the binary data
let buffer = Buffer.from(data);
// Modify the buffer
for (let i = 0; i < buffer.length; i++) {
// Example: Increment each byte
buffer[i]++;
}
console.log('Modified binary data:', buffer);
// Write the modified buffer to a new file
fs.writeFile('modifiedExample.txt', buffer, (err) => {
if (err) throw err;
console.log('The file has been saved!');
});
});
In this example, we used the fs
module to read a file (example.txt) and obtain its binary data. We then created a Buffer from this data, iterated over it, and modified each byte by incrementing its value. Finally, we saved this modified Buffer to a new file (modifiedExample.txt).
Get more articles on Java Script
Read more on Shell and Linux related articles
Refer more on python here : Python