我需要使用javascript逐字节读取二进制文件。我在这个网站上有以下代码,但是它无法工作。我想我必须添加一些额外的src文件作为它的参考。请帮我做它。代码......
var fs = require('fs');
var Buffer = require('buffer').Buffer;
var constants = require('constants');
fs.open("file.txt", 'r', function(status, fd) {
if (status) {
console.log(status.message);
return;
}
var buffer = new Buffer(100);
fs.read(fd, buffer, 0, 100, 0, function(err, num) {
console.log(buffer.toString('utf-8', 0, num));
});
});
答案 0 :(得分:4)
您可以逐字节地同步读取文件:
fs.open('file.txt', 'r', function(err, fd) {
if (err)
throw err;
var buffer = new Buffer(1);
while (true)
{
var num = fs.readSync(fd, buffer, 0, 1, null);
if (num === 0)
break;
console.log('byte read', buffer[0]);
}
});
答案 1 :(得分:1)
您可以使用以下代码:
var blob = file.slice(startingByte, endindByte);
reader.readAsBinaryString(blob);
以下是它的工作原理:
file.slice
会将文件切片为字节,并以二进制形式保存到变量中。您可以通过给出起始字节和结束字节进行切片。
reader.readAsBinaryString
会将该字节打印为二进制文件。文件的大小并不重要。
有关详细信息,请参阅this link。