Как писать и читать биты по одному в файле через NodeJS?
Я хочу создать бинарный файл, используя 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?
});
Какой правильный способ сделать это?
1 ответ
Буферы работают на уровне байтов. Как только вы получите доступ к определенному байту (например, buff[0]
), это просто обычный номер javascript, так что вы можете делать любые битовые операции с этим номером (например, buff[0] & 0x0F
).
Существуют вспомогательные функции для объектов Buffer, которые позволяют вам также писать различные виды чисел. Например: buff.writeUInt32BE(5, 0)
запишет 32-разрядное целое число без знака 5 в режиме с прямым порядком байтов в позиции 0 в буфере. Чтобы прочитать 32-разрядное целое число без знака в режиме с прямым порядком байтов в позиции 0: buff.readUInt32BE(0)
,