【问题标题】:Nodejs: Writing a lot of files: createWriteStream or writeFile?Nodejs:写很多文件:createWriteStream 还是 writeFile?
【发布时间】:2013-10-17 22:33:37
【问题描述】:

我必须写很多文件,我想知道哪种方法最适合。数据是文本。

我有点担心如何正确关闭操作。 createWriteStream 有一个end() 方法或fs.close(),用于关闭流; writeFile 没有这种方法,如果我理解的很好,经过长时间的批量写入可能效率低下。 fs.writeFile 的所有例子都没有提到fs.close()

【问题讨论】:

    标签: node.js file-io stream fs


    【解决方案1】:

    writeFile 不需要close 方法,因为它只需一次调用即可打开/写入/关闭文件。

    决定两者之间的主要标准不是明确的close 的存在/需要,而是:数据是否容易放入RAM?如果是这样,那么writeFile 肯定更易于使用(并且可能会稍微快一点);否则,您最好使用流并以块的形式写入数据。

    【讨论】:

      【解决方案2】:

      fs.close() 实际上用于关闭从fs.open() 或类似函数中选择的文件描述符。您可能正在查看它是writeable.close()fs.write() 将在一次调用中完全写入并完成文件。

      对于写流,你必须在写完后关闭它们,除非你使用readable.pipe()fs.createReadStream()fs.writeFile() 之间的主要区别在于一个接受流,一个接受内存中的资源。因此,如果您有一个大文件,最好使用流,这样一次只有小块加载到内存中。

      【讨论】:

        猜你喜欢
        • 2012-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-09
        • 1970-01-01
        • 2016-11-02
        • 2018-05-17
        相关资源
        最近更新 更多