我必须写很多文件,并且我想知道哪种方法最适合。数据是文本。
我有点担心如何正确关闭操作。 createWriteStream
有一个end()
方法或fs.close()
,可以关闭流;如果我很好理解,writeFile
没有这样的方法,经过长时间的写入后,这可能是低效的。 fs.writeFile的所有示例都没有提到fs.close()
。
答案 0 :(得分:2)
writeFile
不需要close
方法,因为它只需一次调用即可打开/写入/关闭文件。
主要标准决定两者之间是否存在明确close
的存在/需要,而是:数据是否适合RAM?如果确实如此,那么writeFile
肯定更容易使用(并且可能稍微快一点);否则,您最好使用流并以块的形式写入数据。
答案 1 :(得分:1)
fs.close()
实际上用于关闭从fs.open()
或类似函数中选择的文件描述符。你可能正在看的是writeable.close()
。 fs.write()
将在一次通话中完全写入并完成一个文件。
对于写入流,除非使用readable.pipe()
,否则必须在完成写入时关闭它们。 fs.createReadStream()
和fs.writeFile()
之间的主要区别在于,一个接受流,一个接受内存资源。因此,如果您有一个大文件,最好使用一个流,这样一次只能将小块加载到内存中。