1.简介
Node,js把所有关于对文件操作的API,都封装在Node.js的fs模块(文件系统),提供了文件的所有操作方法,且都有同步和异步两个版本.
1.1同步操作
在用fs进行同步操作时,异常会立即抛出,可以使用try...catch进行处理
同步的方法在返回结果后,才能执行后续的代码.一般的文件读写操作,都会耗费一定的时间,容易造成堵塞.
1.2异步操作
异步操作,采用回调函数接收和处理返回结果.
异步方法的最后一个参数为一个回调函数,函数的第一个参数包含了错误信息(err),相比于同步的方法,异步方法无阻塞,性能更优,速度更快.
1.3fs基本方法
fs模块引入
const fs=require('fs')
fs参数
1.3.1 path:string|Buffer|URL,用于说明将要打开的文件路径或文件描述符,一般以字符串为路径,也可以使用Buffer.
1.3.2 flags:取值可以为数字也可为字符串,当为字符串时有以下使用
字符串 | |
'a' | 用于追加内容,如果要打开的文件不存在,则创建该文件 |
'a+' | 用于文件的读取和追加,如果要打开的文件不存在,则创建该文件 |
'as+' | 用于文件的读取和追加,如果要打开的文件不存在,则创建该文件 (同步模式) |
'r'(默认) | 用于文件读取,如果文件不存在,则异常 |
'rs+' | 用于文件的读取和写入,指示操作系统绕过本地文件系统缓存(同步模式) |
'w+' | 用于文件的读取和写入,如果文件不存在,则创建文件,存在的话,则截断文件 |
截断文件:截断是把一个文件删一部分留一部分,体现在于这个文件变小了,占用的块可能也减少了.
1.3.3 mode:可以取值为string和integer(int的包装类),用于创建文件时,给文件制定权限,默认0o666.
2.打开和关闭文件
2.1打开文件
同步方法:fs.openSync()
异步方法:fs.open()
同步方式
[参数]为可选
fs.openSync(path,[flags,mode])
返回值为number类型,表示文件描述符为整数
异步方式
fs.open(path,[flags,mode],callback)
callback为回调函数
callback参数 err--异常的信息,fd(integer)--打开文件后的标识
2.2关闭文件
同步方法:fs.closeSync()
异步方法:fs.close()
同步方式(一般不用)
fs.closeSync(fd)
返回值为undefined
异步方式
fs.open(fd,callback)
callbanck只有一个err参数,表示异常信息.
3.读取和写入文件
3.1读取文件
读取文件的方法有许多,我们主要了解fs.readFile方法
fs.readFile(path,[options],callback)
options:类型可为对象和字符串
- encoding:编码方式,默认null
- flag:默认为r
callback两个参数,err--错误信息,data--读取文件的内容,若没有转化,默认为Buffer格式
3.2 写入文件
fs.writen(fd,string,[position],callback)
position:数据要被写入的位置
callback:三个参数(err,written,string),written表示写入字符串的字节数,string为写入的内容
4.删除文件
同步方式
fs.unlinkSync(path)
返回值为undefined
异步方式
fs.unlink(path,callback)
5.读取目录
fs.readdir(path,[options],callback)
callback参数:err,file为目录的文件