如何通过NodeJS在文件中逐个写入和读取位?

时间:2014-12-03 19:20:08

标签: node.js stream binary buffer machine-code

我想使用01位值创建二进制文件,然后我想逐个读取它们。

我该怎么做?

为了写作,我试过:

var out = require("fs").createWriteStream("./out");
out.write(new Buffer("0"));   // this writes "0" as string
out.write(new Buffer(["0"])); // this creates something strange,
                              // but I'm not sure it's the needed thing

文件存在后,我想迭代该文件中的所有位:

require("fs").readFile("./out", function (err, buff) {
   // how to access here `0` and `1` values?
});

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

缓冲区以字节级运行。访问特定字节(例如buff[0])后,它只是一个普通的javascript编号,因此您可以对该数字执行任何操作(例如buff[0] & 0x0F)。

Buffer对象上有convenience functions,允许您编写不同类型的数字。例如:buff.writeUInt32BE(5, 0)将在缓冲区中的位置0处以大端模式写入32位无符号整数5。要在位置0处以大端模式读取32位无符号整数:buff.readUInt32BE(0)