nodejs中的fs.open()有什么用?fs.readfile和fs.open()有什么区别?

13

我希望知道nodejs应用程序中fs.open()的用途。

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

3个回答

15

如果您想对文件执行多个操作,可以调用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);
});

那么,如果打开文件意味着我可以对文件执行多个操作,那么在打开文件后如何读写文件呢?我的意思是,如果使用readFile,则它也会自行打开和关闭文件,因此我们需要以某种方式在不最终打开和关闭文件的情况下读取文件。 - CodeMonkey
@YonatanNir 使用标志和fd的可用方法。我已经更新了我的答案。 - Shwetabh Shekhar
读取或写入文件的open语法是什么?我找不到任何真正有效的实例。 - SeanMC

4
使用fs.open()可以打开文件并对其进行多种操作,例如读取、写入、关闭等。而使用fs.readFile()则无需打开或关闭文件即可直接读取文件内容。更多信息请参考:Node.js FS

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接