Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 此代码如何/为什么附加文件数据?_Javascript_Node.js - Fatal编程技术网

Javascript 此代码如何/为什么附加文件数据?

Javascript 此代码如何/为什么附加文件数据?,javascript,node.js,Javascript,Node.js,我编写了一些代码,用一个进度条和日志来复制节点中的文件。为简洁起见,删除了额外代码: const writeBuffer = createWriteStream(destFile); const stats = statSync(sourceFile); let fileSize = stats.size; function copyFile() { let copiedBytes = 0; open(sourceFile, 'r', (err, fd) => { whi

我编写了一些代码,用一个进度条和日志来复制节点中的文件。为简洁起见,删除了额外代码:

const writeBuffer = createWriteStream(destFile);
const stats = statSync(sourceFile);
let fileSize = stats.size;

function copyFile() {
  let copiedBytes = 0;
  open(sourceFile, 'r', (err, fd) => {
    while (copiedBytes < fileSize) {
      const buffer = alloc(bytesPerRead);
      const bytesRead = readSync(fd, buffer, 0, bytesPerRead, null);
      copiedBytes += bytesRead;
      writeBuffer.write(buffer);
    }
  });
}

writeBuffer.on('open', copyFile);
const writeBuffer=createWriteStream(destFile);
const stats=statSync(源文件);
让fileSize=stats.size;
函数copyFile(){
让copiedBytes=0;
打开(源文件'r',(err,fd)=>{
while(copiedBytes
这非常有效,并且有一个我没想到的内置“功能”:它可以恢复文件拷贝

我的意思是,如果我在复制的中途终止脚本,然后重新启动它,进度条会立即从0->50%,并继续以正常速度复制。我基本上是从
readSync
中获得数百个结果,几乎是即时返回的。这样做之后,我已经区分了源文件和目标文件,事实上,它们是相同的

这是怎么回事??为什么重新运行时不重新启动拷贝