如果您读取的文件小于8KB,大小为NodeJS allocates 8 KB for it.
这不是直观的,也不是预期的,我们得到的字节比我们投入的要多.但它也不是一个bug,至少在它被记录的意义上是这样.
Minimal NodeJS Example
const { Buffer } = require("node:buffer");
// Create a buffer smaller than `Buffer.poolSize`.
const nodeBuffer = Buffer.from(new Uint8Array([0, 1, 2, 3, 4]));
// size is 8KB, not 5 bytes.
console.log(nodeBuffer.buffer);
Question
- 为什么8KB的缓冲区大小比我们期望的缓冲区大小(文件中数据的大小)更好??
超过8KB的文件将有一个与文件中字节数匹配的分配空间.
Other Details
我知道我们可以使用偏移量来阅读:
// 1 KB
const buffer = fs.readFileSync(fileName, buffer.byteOffset, buffer.byteLength)
但问题不是这个.