【问题标题】:what is the use of fs.open() in nodejs, what is difference between fs.readfile and fs.open()nodejs中fs.open()的用途是什么,fs.readfile和fs.open()有什么区别
【发布时间】:2018-08-02 09:11:14
【问题描述】:

我想知道 fs.open() 在 nodejs 应用程序中有什么用。

nodejs中openreadfile方法有什么区别,它们是如何工作的?

【问题讨论】:

    标签: node.js filesystems readfile


    【解决方案1】:

    使用 fs.open() 打开文件,然后可以对它做几件事。读它,写它,关闭它等等。 使用 fs.readFile 无需打开或关闭您读取的文件。查看更多信息:

    Node.js FS

    【讨论】:

      【解决方案2】:

      是的,如上所述,如果您使用 fs.readFile(),它将为您打开文件并读取内容。如果要执行多个操作或操作是有条件的,则可以使用 fs.open()。 w3schools 中有几个例子。 https://www.w3schools.com/nodejs/nodejs_filesystem.asp

      【讨论】:

        【解决方案3】:

        如果您想对该文件执行多项操作,请致电fs.open()。像fs.readFile() 这样的方法只是简单的快捷方式,也可以防止忘记关闭文件。 (尤其是像 try/catch 这样不太明显的情况。)但是,如果您正在处理同一个文件,您不会希望不断地重新打开和重新关闭它。

        如果您查看文档 (http://nodejs.org/api/fs.html),fs.read() 的第一个参数表示 fd,而 fs.readFile() 的第一个参数是文件名。 fd 代表“文件描述符”,它是 fs.open() 返回的对象。文件名只是一个字符串。

        以下是利用fd 进行读写的示例。

        fs.open('<directory>', 'r+', (err, fd) =>  {
        // r+ is the flag that tells fd to open it in read + write mode.
        // list of all flags available: https://nodejs.org/api/fs.html#fs_file_system_flags
        // read using fd:https://nodejs.org/api/fs.html#fs_fs_read_fd_buffer_offset_length_position_callback
        // write using fd: https://nodejs.org/api/fs.html#fs_fs_write_fd_buffer_offset_length_position_callback
        // close the flag: fs.close(fd);
        });
        

        【讨论】:

        • 那么如果打开意味着我可以对文件进行多次操作,那么打开后如何读写文件呢?我的意思是,如果你使用 readFile,那么它也会自己打开和关闭它,所以我们需要以某种方式读取文件并最终打开和关闭它
        • @YonatanNir 使用标志和fd 的可用方法。我已经更新了我的答案。
        猜你喜欢
        • 2019-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-08
        • 2020-09-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多