一、文件系统 (File System)
文件系统简单来说就是通过 Node 来操作系统的文件
使用文件系统,需要先引入 fs 模块,fs 是核心模块,直接引入即可,不需要下载。
const fs = require("fs"); // 加载fs文件系统模块
我们在文件写入的时候,手动操作的步骤如下,在 Node 中,我们也采用这种方式:
- 打开文件
- 向文件中写入内容
- 保存并关闭文件
注意:在我们的 Node 中,我们可以采用如下方法,对文件进行写入。当我们的 Node 发现没有这个文件时,没有关系,Node 它会为我们进行创建。当然这个不是绝对的,那是因为在我们以下的这些方法中,默认打开文件状态的参数,都是 w (可写的) ,那么只要我们这个文件没有,那么 Node 就会为我们进行创建并写入文件。当然,你如果对其,进行了重新的设置,如下表所示,那么相应的操作也就会改变了。
二、同步文件写入
1、fs.openSync(path,flags[,mode])
- path:要打开的文件路径
- flags:打开文件要做的操作的类型
- mode:设置文件的操作权限,一般不传
- 返回值:该方法会返回一个文件的描述符作为结果,我们可以通过该描述符来对文件进行各种操作
2、fs.writeSync(fd,string[,position[,encoding]])
- fd:文件的描述符,需要传递要写入的文件的描述符
- string:要写入的内容
- position:写入的起始位置
- encoding:写入的编码,默认为utf-8,一般也不传
3、fs.closeSync(fd)
- fd:要关闭的文件的描述符
// 同步文件写入
var fs = require('fs');
var fd = fs.openSync('hello.txt','w');
// r 只读
// w 只写
fs.writeSync(fd,'Hello JavaScript');
fs.closeSync(fd);
要完成同步写入文件,先需要通过 openSync() 打开文件来获取一个文件描述符,然后在通过 writeSync() 写入文件。
三、异步文件写入
1、fs.open(path,flags[,mode],callback)
- 用来打开一个文件
- 异步调用的方法,结果都是通过回调函数返回的
- 回调函数需要两个参数:err 错误对象,如果没有错误,则为null,fd 文件的描述符
2、fs.write(fd,string[,position[,encoding]],callback)
- 用来异步写入一个文件
3、fs.close(fd,callback)
- 用来关闭文件
// 异步文件写入
var fs = require('fs');
// 打开文件
fs.open('hello2.txt','w',function (err,fd) {
// 判断是否出错
if (!err){
// 如何没有出错,则对文件执行写入操作
fs.write(fd,'这是异步写入的内容',function (err) {
if (!err){
console.log('写入成功~~~');
}
fs.close(fd,function (err) {
if (!err){
console.log('文件已关闭~~~')
}
});
});
}else{
console.log(err);
}
})
要使用异步写入文件,先需要通过 open() 打开文件,然后在回调函数中通过 write() 写入。