4

nodejs の Writable Stream を使用して、ファイルに複数回書き込みたいです。問題は、このライターにも役職を指定したいということです。

ここにいくつかの背景があります-マルチスレッドダウンローダーを作成したいです。応答として来るデータは、ディスクに保存する必要があります。データ チャンクの順序はランダムになる可能性があるため、位置パラメーターも書き込み可能なストリームに渡す必要があります。

ドキュメントにそう書かれているため、fs.writeの代わりに書き込み可能なストリームを使用しています-

コールバックを待たずに fs.write を同じファイルに対して複数回使用することは安全ではないことに注意してください。このシナリオでは、fs.createWriteStream を強くお勧めします。

ありがとう!

4

1 に答える 1

3

start オプションを使用してこれを行うことができますが、ファイルが存在し、サイズが >= offset + chunkToWrite.length である必要があります。これにより、ダウンロードするファイルのサイズ以上のサイズのダミー コンテンツを使用して fs.writeFile を使用し、最初の書き込みからのコールバックを待機する必要が生じます。例えば:

var buffer = new Buffer (fileSize);
buffer.fill('0');

fs.writeFile('./file', buffer, function() {
  var writeStream = fs.createWriteStream('./file',{flags: 'r+', mode: 0777, start: 10});
  writeStream.write('HELLO AFTER 10');
});
于 2013-04-19T14:07:53.987 に答える