【发布时间】:2015-02-01 11:58:23
【问题描述】:
我想使用0 和1 位值创建一个二进制文件,然后我想一个一个地读取它们。
我该怎么做?
我尝试过写作:
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?
});
这样做的正确方法是什么?
【问题讨论】:
-
你能解释一下吗?你具体想做什么?如果流确实是您想要的,则可以创建转换流,但这尚不清楚。否则,您将不得不读取/写入字节值并使用位掩码来获取所需的值。
-
@Brad 从我在其他帖子上看到的按字节读取可以使用
stream.on("byte", ...)来实现,这就是我真正需要的。我正在为 ARC 机器编写一个汇编器和一个解释器应用程序。为此,我需要将字节(32 位)存储在二进制文件中,然后对其进行解释,但首先我需要正确编写它们,正确读取它们并最终处理它们。 -
您想要字节还是 32 位整数?缓冲区类允许您从缓冲区读取/写入各种值。
-
@Brad 我的错,1 字节 === 8 位,我需要连续读写 32 位。
标签: node.js stream binary buffer machine-code