我有以下节点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.bin
将testcopy.bin
与vim -d test.bin testcopy.bin
进行比较,我发现这些文件并不相同。文件test.bin
是二进制文件。你能帮我解释一下原因吗?我只想切片缓冲区的内容而不修改它。使用常规文本文件时,不会发生此问题。
最后,我还想用零填充最后一个切片,以便最后一个切片的长度为SEND_SIZE
。你能帮帮我吗?