[英]How to read binary file byte by byte using javascript?
我需要使用 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));
});
});
您可以逐字节同步读取文件:
fs.open('file.txt', 'r', function(err, fd) {
if (err)
throw err;
var buffer = Buffer.alloc(1);
while (true)
{
var num = fs.readSync(fd, buffer, 0, 1, null);
if (num === 0)
break;
console.log('byte read', buffer[0]);
}
});
您可以使用以下代码:
var blob = file.slice(startingByte, endindByte);
reader.readAsBinaryString(blob);
这是它的工作原理:
file.slice
将一个文件切成字节并作为二进制文件保存到一个变量中。 您可以通过提供开始字节和结束字节来切片。
reader.readAsBinaryString
将该字节打印为二进制文件。 文件有多大并不重要。
有关详细信息,请参阅此链接。
import { readFile } from 'fs/promises'; // read the file into a buffer (https://nodejs.org/api/fs.html#fspromisesreadfilepath-options) (await readFile('file.txt')) // (optional) read just a portion of the file .slice(startingByte, endingByte) // process each byte however you like .forEach((byte) => console.log(byte));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.