我希望知道nodejs应用程序中fs.open()
的用途。
open
和readfile
方法在nodejs中有什么区别,它们如何工作?
我希望知道nodejs应用程序中fs.open()
的用途。
open
和readfile
方法在nodejs中有什么区别,它们如何工作?
如果您想对文件执行多个操作,可以调用fs.open()
。像fs.readFile()
这样的方法只是快捷方式,也可以防止忘记关闭文件(特别是像try/catch这样不太明显的情况)。但如果您正在处理同一文件,则不希望经常重新打开和关闭它。
如果查看文档,可以发现 fs.read()
的第一个参数为fd,而fs.readFile()
的第一个参数为filename。 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);
});
如上所述,如果您使用fs.readFile(),它将为您打开文件并读取其内容。如果您想执行多个操作或操作是有条件的,则应使用fs.open()。w3schools中有几个示例。 https://www.w3schools.com/nodejs/nodejs_filesystem.asp
fd
的可用方法。我已经更新了我的答案。 - Shwetabh Shekhar