【发布时间】:2018-08-02 09:11:14
【问题描述】:
我想知道 fs.open() 在 nodejs 应用程序中有什么用。
nodejs中open和readfile方法有什么区别,它们是如何工作的?
【问题讨论】:
标签: node.js filesystems readfile
我想知道 fs.open() 在 nodejs 应用程序中有什么用。
nodejs中open和readfile方法有什么区别,它们是如何工作的?
【问题讨论】:
标签: node.js filesystems readfile
使用 fs.open() 打开文件,然后可以对它做几件事。读它,写它,关闭它等等。 使用 fs.readFile 无需打开或关闭您读取的文件。查看更多信息:
【讨论】:
是的,如上所述,如果您使用 fs.readFile(),它将为您打开文件并读取内容。如果要执行多个操作或操作是有条件的,则可以使用 fs.open()。 w3schools 中有几个例子。 https://www.w3schools.com/nodejs/nodejs_filesystem.asp
【讨论】:
如果您想对该文件执行多项操作,请致电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);
});
【讨论】:
fd 的可用方法。我已经更新了我的答案。