Node.js | Buffer.swap16() Method

The Buffer.swap16() method is an inbuilt application programming interface of class Buffer within Buffer module which is used to swap the buffer byte order in-place. The swapping is performed by interpreting buffer as an array of 16-bit numbers.

Syntax:

Buffer.swap16()

Parameters: This method does not accept any parameters.



Return value: It returns a reference to the swapped buffer.

Error thrown: It throws ERR_INVALID_BUFFER_SIZE if length of buffer (buf.length) is not a multiple of 2.

Below examples illustrate the use of Buffer.swap16() Method in Node.js:

Example 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Node.js program to demonstrate the 
// Buffer.swap16() method 
      
// Creating a buffer 
const buf = Buffer.from([0x1, 0x2,
        0x3, 0x4, 0x5, 0x6, 0x7, 0x8]); 
  
// Display the buffer value
// before swap 
console.log(buf); 
  
// Using Buffer.swap16() method
buf.swap16();
      
// Display the result 
// after swap
console.log(buf); 

chevron_right


Output:

<Buffer 01 02 03 04 05 06 07 08>
<Buffer 02 01 04 03 06 05 08 07>

Example 2: This example display the error thrown by this method.

filter_none

edit
close

play_arrow

link
brightness_4
code

// Node.js program to demonstrate the 
// Buffer.swap16() method 
      
// Creating a buffer 
const buf = Buffer.from([0x7, 0x5, 0x2]); 
  
// Display the buffer value
// before swap 
console.log(buf); 
  
try {
    // Using Buffer.swap16() method
    // It will throw error
    buf.swap16();
  
    // Display the result 
    // after swap
    console.log(buf);
  
}
catch(e) {
    console.log("Entering catch block");
  
    // Display error
    console.log(e);
}

chevron_right


Output:

<Buffer 07 05 02>
Entering catch block
RangeError [ERR_INVALID_BUFFER_SIZE]: Buffer size
must be a multiple of 16-bits
    at Buffer.swap16 (buffer.js:1042:11)
    at /home/runner/index.js:14:9
    ......

Note: The above program will compile and run by using the node index.js command.

Reference: https://nodejs.org/dist/latest-v13.x/docs/api/buffer.html#buffer_buf_swap16



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.