Nodejs buffers: Difference between revisions
From wikinotes
(→Basics) |
(→Basics) |
||
(One intermediate revision by the same user not shown) | |||
Line 19: | Line 19: | ||
* <code>allocUnsafe()</code> only reserves memory (faster). | * <code>allocUnsafe()</code> only reserves memory (faster). | ||
By default, buffers are are stored as a [[ | By default, buffers are are stored as a [[unicode|UTF-8]] array of bytes.<br> | ||
<code>buffer.toString()</code> converts the buffer to a [[ | <code>buffer.toString()</code> converts the buffer to a [[unicode|UTF-8]] string. | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
import { Buffer } from 'buffer'; | import { Buffer } from 'buffer'; | ||
// allocate buffer | |||
const buf = Buffer.alloc(10); | const buf = Buffer.alloc(10); | ||
const buf = Buffer.allocUnsafe(10); | const buf = Buffer.allocUnsafe(10); | ||
// write | |||
buf.write("abc"); | |||
// read | |||
buf[0]; // byte at pos 0 | |||
buf.toString() // print buf as UTF-8 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
</blockquote><!-- Basics --> | </blockquote><!-- Basics --> | ||
= write = | |||
<blockquote> | |||
<syntaxhighlight lang="javascript"> | |||
buf.fromString("abc"); // from UTF-8 string | |||
buf.write("abc"); // from UTF-8 string | |||
</syntaxhighlight> | |||
</blockquote><!-- write --> | |||
= read = | |||
<blockquote> | |||
<syntaxhighlight lang="javascript"> | |||
// read buffer | |||
buf[0]; // byte at pos 0 | |||
buf.toString() // print buf as UTF-8 | |||
for (cont ch in buf) { ... } // loop over bytes in buffer | |||
</syntaxhighlight> | |||
</blockquote><!-- read --> | |||
= manipulate = | |||
<blockquote> | |||
<syntaxhighlight lang="javascript"> | |||
buf.subarray(0, 2); // slice of bytes 0-2 | |||
buf.set(Buffer.from('foo')); // copy | |||
</syntaxhighlight> | |||
</blockquote><!-- manipulate --> |
Latest revision as of 02:24, 6 August 2021
Buffers are reserved sections of memory designed to store binary data.
Interact with it like an array of bytes.
Documentation
buffer docs https://nodejs.org/api/buffer.html buffer tutorial https://nodejs.dev/learn/nodejs-buffers
Basics
Buffers are fixed size, reserved sections of memory.
alloc()
reserves memory, initializing every byte with a 0allocUnsafe()
only reserves memory (faster).By default, buffers are are stored as a UTF-8 array of bytes.
buffer.toString()
converts the buffer to a UTF-8 string.import { Buffer } from 'buffer'; // allocate buffer const buf = Buffer.alloc(10); const buf = Buffer.allocUnsafe(10); // write buf.write("abc"); // read buf[0]; // byte at pos 0 buf.toString() // print buf as UTF-8
write
buf.fromString("abc"); // from UTF-8 string buf.write("abc"); // from UTF-8 string
read
// read buffer buf[0]; // byte at pos 0 buf.toString() // print buf as UTF-8 for (cont ch in buf) { ... } // loop over bytes in buffer
manipulate
buf.subarray(0, 2); // slice of bytes 0-2 buf.set(Buffer.from('foo')); // copy