node js切片缓冲区修改数据

时间:2017-01-18 07:01:40

标签: node.js

我有以下节点js代码:

#!/usr/bin/env node
const SEND_SIZE = 256;
var fs = require('fs');

function append(data){
  "use strict";
  fs.appendFile("./testcopy.bin", data, function(errorwrite){
    if (errorwrite) {
      throw errorwrite;
    }
  });
}

fs.readFile("./test.bin", function(error, data){
  "use strict";
  if(error)
  {
    console.log(error);
  }
  else
  {
    for(var start=0, len=data.length; start < len; start+=SEND_SIZE)
    {
      var d = data.slice(start, start+SEND_SIZE);
      append(d);
    }
  }
});

当我将其称为node ./main.js时,我使用test.bintestcopy.binvim -d test.bin testcopy.bin进行比较,我发现这些文件并不相同。文件test.bin是二进制文件。你能帮我解释一下原因吗?我只想切片缓冲区的内容而不修改它。使用常规文本文件时,不会发生此问题。

最后,我还想用零填充最后一个切片,以便最后一个切片的长度为SEND_SIZE。你能帮帮我吗?

0 个答案:

没有答案