NodeJs Fs模块

时间:2021-10-16 13:54:49

和前面的Http、Url模块一样,Fs模块也是node的核心模块之一,主要用于对系统文件及目录进行读写操作。

基本方法

fs.stat

fs.stat可以用来判断是文件还是目录:stats.isFile()用于检测是否是文件,stats.isDirectory()用于检测是否是目录,两个都返回布尔值。

测试前,在fs01.js文件所在的目录下,新建一个文件夹和一个文件

NodeJs Fs模块

NodeJs Fs模块    NodeJs Fs模块

fs.mkdir

fs.mkdir可以用来创建目录,该方法能接受sane参数:path(将创建的目录路径),mode(读写权限,默认0777),callback(异常回调)

NodeJs Fs模块

运行上面创建目录的代码,正常情况下会在控制台打印出创建成功的语句,并生成相应目录

NodeJs Fs模块    NodeJs Fs模块

fs.writeFile

fs.writeFile可以用来创建文件并写入内容。该方法接收4个参数:filename、data、options和callback,其中filename是文件名称,data是将要写入的内容,可以是字符串或者buffer数据,callback传递异常回调,options是一个数组对象,包含encoding(可选值,默认 ‘utf8′,当data使buffer时,该值应该为 ignored)、mode(文件读写权限,默认值 438)、flag(默认值 ‘w')。

NodeJs Fs模块

执行上面的代码,将会在执行http目录下生成一个hello.txt的文件,并在这个文件中写入相应内容

NodeJs Fs模块  NodeJs Fs模块  NodeJs Fs模块

如果添加的时候,已经存在改文件,那么新添加的会在原来的基础上进行覆盖。

NodeJs Fs模块   NodeJs Fs模块

fs.appendFile

fs.appendFile用于向文件内追加内容(虽然名为追加内容,但实际是覆盖,目前还不是很明白)

NodeJs Fs模块  NodeJs Fs模块  NodeJs Fs模块

在进行内容追加的时候,如果目标文件不存在,会先创建文件,然后添加内容。

fs.readFile

fs.readFile用于读取文件

NodeJs Fs模块   NodeJs Fs模块

fs.readdir

fs.readdir用于读取目录,能够同时获取目录下的文件和文件夹,返回一个包含文件名和文件夹名称的数组。

读取同时包含文件夹和文件的目录:

NodeJs Fs模块   NodeJs Fs模块  NodeJs Fs模块

读取只包含文件的目录:

NodeJs Fs模块  NodeJs Fs模块   NodeJs Fs模块

fs.rename

fs.rename用于给文件或文件夹重命名,在给文件重命名的时候,需要保证文件类型一致。

文件夹重命名:

NodeJs Fs模块  NodeJs Fs模块

文件重命名:

NodeJs Fs模块   NodeJs Fs模块

修改文件类型的重命名:

NodeJs Fs模块

NodeJs Fs模块

fs.rmdir

fs.rmdir用于删除文件夹。用该方法来删除文件或者不存在的文件夹的时候会报错。

NodeJs Fs模块   NodeJs Fs模块

fs.unlink

fs.unlink用于删除文件。同样,如果使用该方法删除文件夹或者不存在的文件的时候,也会报错。

NodeJs Fs模块  NodeJs Fs模块

管道流

fs.createReadStream

fs.createReadStream用于从文件流中读取数据

NodeJs Fs模块  NodeJs Fs模块

fs.createWriteStream

fs.createWriteStream用于向文件中写入内容。

NodeJs Fs模块

其中的writerStream.end()标志文件末尾,监听的finish则是在所有数据都被写入时触发的事件。

利用createReadStream()和createWriteStream()可以实现一个管道流,读取一个文件的内容,并写入到另外一个文件中。

NodeJs Fs模块