javascript - 如何将二进制(非 UTF-8)写入文件

标签 javascript node.js binaryfiles

我有一个数字数组,我想使用 Node.JS 将其写入文件。

如果我有一个号码:256

该文件应包含二进制文件:

`00000001  00000000`

而不是:

`00000010  00000101  00000110`

问这个问题的原因是我读到缓冲区的二进制字符串格式已被弃用 1 .

最佳答案

Buffer 类可以直接处理数字数组:

// Old style
var buffer = new Buffer([ 150 ]);

// New style
var buffer = Buffer.from([ 150 ]);

// Write the buffer to a file.
// Using `fs.writeFileSync()` just as an example here.
require('fs').writeFileSync('output.bin', buffer);

如果您要处理更大的数字(而不是字节),则需要使用 typed array .

例如,使用 16 位无符号值:

var array    = [ 5000, 4000 ];
var u16array = Uint16Array.from(array);
var buffer   = new Buffer(u16array.buffer);

require('fs').writeFileSync('output.bin', buffer);

关于javascript - 如何将二进制(非 UTF-8)写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37489360/

相关文章:

javascript - 使用堆叠布局时将自定义值字段映射到 x 值

javascript - 为什么这个函数表达式未定义?

node.js - MS Bot Framework - 带有音频附件的消息丢失

node.js - Sequelize decimal data save 2个小数点

Java 有效地读取大文件(~100GB)

c++ - 为什么不能在 Turbo C++ 的二进制文件中写入全长字符串 (char[])

javascript - 脚本影响所有div,我怎样才能让它只影响一个?

javascript - 如果数据参数包含-(连字符)符号如何处理?

javascript - BIRT:如何在 HTML View 中获取导出选项

linux - Bin 数据在 AIX 和 Linux 中的读取方式不同