0
我對NodeJS有點新,我正在研究一個簡單的文件編碼器。NodeJS - 讀取和寫入文件導致損壞
我計劃改變文件的第一個20kb,然後複製剩下的文件。
所以我使用了下面的代碼,但它改變了文件其餘部分的一些字節。
這裏是我的代碼:
var fs = require('fs');
var config = require('./config');
fs.open(config.encodeOutput, 'w', function(err, fw) {
if(err) {
console.log(err);
} else {
fs.readFile(config.source, function(err, data) {
var start = 0;
var buff = readChunk(data, start);
while(buff.length) {
if(start < config.encodeSize) {
var buffer = makeSomeChanges(buff);
writeChunk(fw, buffer);
} else {
writeChunk(fw, buff);
}
start += config.ENCODE_BUFFER_SIZE;
buff = readChunk(data, start);
}
});
}
});
function readChunk(buffer, start) {
return buffer.slice(start, start + config.ENCODE_BUFFER_SIZE);
}
function writeChunk(fd, chunk) {
fs.writeFile(fd, chunk, {encoding: 'binary', flag: 'a'});
}
我打開編碼文件,並與原文件進行了比較。
我甚評論如下幾部分:
//if(start < config.encodeSize) {
// var buffer = makeSomeChanges(buff);
// writeChunk(fw, buffer);
//} else {
writeChunk(fw, buff);
//}
所以我的程序只是將文件複製,但它仍然改變一些字節。
出了什麼問題?
這些文件有什麼區別?有抵消嗎?具體模式是否改變?編碼有沒有問題? – jcaron