node文件读操作
增加与node v0.0.2
参数说明:
path 字符串或缓冲区数据<String> | <Buffer>
flags 字符串或数字 <String> | <Number>
mode 整型<Integer>
callback 回调函数 <Function>
异步文件读写,flags参数可以是:
'r'打开文件只读,文件不存在抛出异常。
'r+'打开文件进行读与写,文件不存在抛出异常。
'rs+'同步模式下的读写文件。指示操作系统绕过本地文件系统缓存。这主要是用于打开文件在NFS安装允许你跳过可能陈旧的本地缓存。它有一个非常真实的I / O性能的影响,所以不要使用此标志,除非你需要它。请注意,这不是fs.open()的同步阻塞调用。如果你这么想,那么你应该使用fs.opensync()。
'w'打开文件进行写,文件不存在则创建,文件存在则覆盖。
'wx'和'w'一样,但是如果文件存在则写入失败。
'w+'打开文件进行读和写,文件不存在则创建,文件存在则覆盖。
'wx+'和'w+'一样,但是如果文件存在则写入失败。
'a'打开文件进行追加操作,文件不存在则创建
'ax'和'a'一样,文件存在写入失败。
'a+'打开文件进行读和追加,文件不存在则创建。
'ax+'和'a+'一样,文件存在则写入失败。
模式设置文件模式(权限和粘性位),但仅当文件被创建时。默认是0666,可读可写。
回调函数有两个参数(err, fd)。
专属标志“X”(O_EXCL)保证路径是新创建的。在POSIX系统,路径被认为文件存在与不存在的符号链接。专用标志可以使用网络文件系统,也可以不使用。
flags也可以是数字;常用的常数可从fs.constants中获取。在Windows中,标志转换为等效的适用,例如o_wronly到file_generic_write,或o_excl | o_creat到create_new,作为被createfilew。
在Linux中,在附加模式下打开文件时,位置写不起作用.。内核忽略了位置参数,总是会将数据追加到文件末尾。
注:fs.open()的行为是平台特定的一些标志。因此,在OS X和Linux上用“a+”标记打开一个目录-见下面的例子-将返回一个错误。相比之下,在Windows和FreeBSD,文件描述符将返回。
// OS X and Linux fs.open('<directory>', 'a+', (err, fd) => { // => [Error: EISDIR: illegal operation on a directory, open <directory>] }); // Windows and FreeBSD fs.open('<directory>', 'a+', (err, fd) => { // => null, <fd> });
增加于node v0.1.21
参数说明:
path 字符串与缓冲区数据 <String> | <Buffer>
flags 字符串与数字 <String> | <Number>
mode 整型 <Integer>
fs.open()的同步版本。返回表示文件描述符的整数。
增加于node v0.0.2
fd 整型(fopenSync的返回值与fopen中的回调中fd)<Integer>
buffer 字符串与缓冲区数据<String> | <Buffer>
offset 整型<Integer>
length 整型<Integer>
position 整型<Integer>
callback 回调函数<Function>
从指定的文件中读取数据通过fd。
buffer是数据将被写入的缓冲区。
offset是缓冲区中开始写入的偏移量。
length是一个整数,指定要读取的字节数。
position是一个整数,指定从文件开始读取的位置。如果位置为空,则将从当前文件位置读取数据。
callback给出了三个参数,(err, bytesRead, buffer)。
Added in: v0.1.21
fd <Integer>
buffer <String> | <Buffer>
offset <Integer>
length <Integer>
position <Integer>
fs.read()的同步版本。返回读取的字节数。
file
<String> | <Buffer> | <Integer> 文件名或文件描述符
options
<Object> | <String>
encoding
<String> | <Null> default = null
flag
<String> default = 'r'
callback
<Function>
异步读取文件的全部内容。例子:
fs.readFile('/etc/passwd', (err, data) => { if (err) throw err; console.log(data); });
callback有两个参数(err, data),data是文件的内容。
如果没有指定编码,则返回原始缓冲区。
如果选项是字符串,则指定编码。例子:
fs.readFile('/etc/passwd', 'utf8', callback);
任何指定的文件描述符都必须支持阅读。
注意:如果将文件描述符指定为文件,它将不会自动关闭。
增加于node v0.1.8
file <String> | <Buffer> | <Integer> 文件名或文件描述符
options <Object> | <String>
encoding <String> | <Null> default = null
flag <String> default = 'r'
fs.readFile的同步版本。返回文件内容。
如果指定了编码选项,则该函数返回一个字符串。否则它返回一个缓冲区。