剪接缓冲区与读入缓冲区

时间:2017-03-30 08:51:30

标签: node.js

希望有人可以帮助解释为什么这是不正确的。

根据我的理解,fs.read读入缓冲区,而readFile返回缓冲区。我假设有一些等效性,不知道在哪里或为什么。

最终结果是我希望模仿fs.read操作,但是已经预先加载了缓冲区。

const fs = require('fs')
const file = 'file.bin'
const crypto = require('crypto')
const assert = require('assert')

let start = 10
let length = 20

let data = fs.readFileSync(file)
let md5sum = crypto.createHash('md5')
md5sum.update(data.slice(start, length))

let fd = fs.openSync(file, 'r')
let data2 = new Buffer(length)
let md5sum2 = crypto.createHash('md5')
fs.readSync(fd, data2, 0, length, start)
md5sum2.update(data2)

assert.equal(md5sum.digest('hex'), md5sum2.digest('hex'))

1 个答案:

答案 0 :(得分:0)

好像我发现了错误:

md5sum.update(data.slice(start, length))

应该是:

md5sum.update(data.slice(start, start + length))

看起来end应该是结束元素而不是长度。