Writing large files with Node.js

后端 未结 7 855
走了就别回头了
走了就别回头了 2020-12-08 06:53

I\'m writing a large file with node.js using a writable stream:

var fs     = require(\'fs\');
var stream = fs.createWriteStream(\'someFile.txt\', { flags : \         


        
7条回答
  •  Happy的楠姐
    2020-12-08 07:32

    If you do not happen to have an input stream you cannot easily use pipe. None of the above worked for me, the drain event doesn't fire. Solved as follows (based on Tylers answer):

    var lines[]; // some very large array
    var i = 0;
    
    function write() {
        if (i < lines.length)  {
            wstream.write(lines[i]), function(err){
                if (err) {
                    console.log(err);
                } else {
                    i++;
                    write();
                }
            });
        } else {
            wstream.end();
            console.log("done");
        }
    };
    write();
    

提交回复
热议问题