Node.js:写入后关闭文件

编程入门 行业动态 更新时间:2024-10-12 05:52:32

Node.js:写入后关闭<a href=https://www.elefans.com/category/jswz/34/1771438.html style=文件"/>

Node.js:写入后关闭文件

我目前正在使用writer = fs.createWriteStream(url)获取可写流到文件,并使用writer.write()进行多次写操作,最后我执行writer.end()。我注意到,当我执行writer.end()时,文件大小仍然为零,并保持为零,直到程序终止,此时程序达到其正确大小,并且内容可见且正确。

因此writer.end()似乎没有关闭文件。

规范说“如果在'error'或'finish'时将autoClose设置为true(默认行为),则文件描述符将自动关闭。”

我不确定这里指的是什么“错误”或“完成”。事件大概是:但是它们与我在writer.end()上的通话有何关系?我需要做些什么来导致这些事件吗?

我将尝试直接获取文件描述符,并在写入后显式调用fd.close()将其关闭,但在给定文件描述符的情况下,我看不到获得可写流的方法。

有任何建议吗?

回答如下:

当您调用.write时,节点不会立即写入文件,但会缓冲所有块,直到达到highWaterMark字节为止。届时它将尝试将内容刷新到磁盘。

为什么检查.write返回值很重要,如果返回false,则意味着您需要等待drain事件发出,如果不这样做,则可以用尽内存的应用程序,请参阅:why does attempting to write a large file cause js heap to run out of memory

.end同样。它不会立即关闭文件,首先将刷新缓冲区,然后将所有内容写入文件,然后将关闭fd

因此,一旦您呼叫.end,就必须等到finish事件发出。

在stream.end()方法被使用后,将发出'finish'事件。调用,并且所有数据都已刷新到基础系统。

finish

更多推荐

Node.js:写入后关闭文件

本文发布于:2024-05-07 21:15:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1757287.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文件   Node   js

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!