Node.js学习笔记7-文件系统

文件系统fs

fs模块是文件操作的封装,它提供了文件的读取、写入、更名、删除、遍历目录、链接等POSIX(注:可移植操作系统接口:Portable Operating System Interface ,缩写为 POSIX )文件系统操作。

fs模块中所有的操作都提供了异步(Asyn)和同步(Syn)的两个版本,例如读取文件内容的有异步的fs.readFile()和同步的fs.readFileSync()。

1. fs.readFile(filename , [encoding], [callback(err,data)])是最简单的读取文件的函数。

filename : 要读取的文件名。

encoding:文件的字符编码。

callback : 回调函数,用于接收文件的内容。接收两个参数err, 和data ,err表示有没有错误发生,data是文件内容。如果指定了encoding,data是一个解析后的字符串,

否则data将会是以Buffer形式表示的二进制数据

如果能够正常读取file,则err是null 

提示: Node.js的异步编程接口习惯是以函数的最后一个参数作为回调函数,通常一个函数只有一个回调函数。回调函数是实际参数中的第一个err,其余的参数是其他返回的内容,

如果没有发生错误,err值会是null或是undefined。如果有发生错误,err通常是Error对象的实例。

提示: 与同步I/O函数不同,Node.js中异步函数大多没有返回值。

2.fs.open(path , flags, [mode], [callback(err,fd)])是POSIX中open函数的封装。

path: 文件的路径(建议是相对路径,便于移植)

flags: 

r : 以只读方式打开文件。

r+ : 以读写方式打开文件。

w: 以写入模式打开文件,如果文件不存在则创建。

w+ : 以读写模式打开文件,如果文件不存在就创建。

a: 以追加模式打开文件,如果不存在则创建。

a+ : 以读取追加模式打开文件,如果文件不存在则创建。

mode :用于创建文件时指定权限,默认是0666。回调函数将会传递一个文件描述符fd。

注:

(1)指定权限0666: 文件权限指的是POSIX操作系统中对文件读取和访问权限的规范,通常用一个八进制来表示。

例如0754 表示的是: 文件所有者的权限是7( 读、写、执行:0111),同组的用户的权限是5(读、执行0101),其他用户的权限是4(读 0100)。

则: 0666 :文件所有者,同组用户和其他用户的权限都是6( 读、写0110).

(2)文件描述符是一个非负整数,表示操作系统内核为当前进程所维护的打开文件的记录表的索引。

3.fs.read(fd,buffer,offset,length, position,[callback(err,bytesRead,buffer)])是POSIXread函数的封装,相比fs.readFile提供了更底层的接口、

fs.read的功能是从指定的文件描述符fd中读取数据并写入buffer指向的缓冲区对象。

offset是buffer的写入偏移量。

length : 是要从文件中读取的字节数。

position: 文件读取的起始位置,如果position的值是null,则会从文件指针的位置读取。

bytesRead表示读取的字节数。

buffer :表示缓冲区对象。

一般来说,除非必要,一般都不要使用fs.read方式读取文件,因为他会要求你手动管理缓冲区和文件指针,尤其是在你不知道文件大小的时候,这将会一件很麻烦的事情。

4.fs.writeFile(filename,data,[encoding],[callback(err)])

如果filename文件不存在,则会创建该文件并写入内容data。如果filename文件已经存在,则data会覆盖原先的内容,相当于重写!

原文地址:https://www.cnblogs.com/shixiaomiao/p/4966310.html