node.js - 如何通过 NodeJS 在文件中一位一位地写入和读取?

标签 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?
});

执行此操作的正确方法是什么?

最佳答案

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

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

关于node.js - 如何通过 NodeJS 在文件中一位一位地写入和读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27279901/

相关文章:

javascript - es6 模块到 commonjs,在 node harmony 标志下使用 typescript

java - 如何使用 Java 从 url 流式传输音乐 - Android

c++ - 解析二进制文件。什么是现代方式?

在C中将负十进制转换为二进制

java - 字符串的二进制加法

javascript - 将除 mongodb 之外的所有内容插入数据库

javascript - 如何使用 http post Node.js 下载文件

node.js - 如何在 Node.js 和 Mongoose 中在一段时间后更新用户?

java - 在写入文件时从文件中读取数据

java - 在使用 Streams API 时使用 Chronicle Map 产生垃圾