目录
1、FS(FileSystem):实现对文件的IO操作。fs是Node的模块,需要导入
一、Node的文件系统
1、FS(FileSystem):实现对文件的IO操作。fs是Node的模块,需要导入
var fs = require('fs');
2、同步和异步
(1)同步:程序在涉及到文件IO时,必须等到文件IO操作结束后再执行后续的操作。
(2)异步:程序在涉及到文件IO时,不等待文件IO操作结束,继续执行后续的操作,当文件IO操作结束后系统会通知程序处理文件 IO的结果。
3、回调函数
"回调"即"回头调用";"回调函数"是指函数定义后并不立即调用,而是等到某个事件被触发时再调用。具有异步特性
4、fs模块的常用函数
(1)读文件
A、readFile():用于异步读取数据。 - - - - 非阻塞方式读
fs.readFile(fileName, function (err, buffer) {//异步读取文件
if (err) throw err;//处理文件的代码
process(buffer);
});
"filename":文件名(包含路径)
"function(err,buffer)":回调函数,'err'存放的是读文件失败的信息;'buffer'存放文件的内容
B、readFileSync():用于同步读取文件,返回一个字符串。- - - -阻塞方式
var text = fs.readFileSync(fileName, 'utf8');
readFileSync(filename,'utf8')//同步读文件,函数的返回值是字符串(文件内容)
第二个参数:用来指定字符集,若不指定则函数返回Buffer;若指定则返回字符串
//创建input.txt
山海皆可平
新年快乐
//创建read,js
//1.导入fs模块
const fs = require('fs');
//2.异步读取
fs.readFile('input.txt',function (err,buf) {
if(err){
return console.error(err)
}
console.log("异步读文件:",buf.toString())
})
console.log('2022-1-2')
// 2022-1-2
// 异步读文件: 山海皆可平
// 新年快乐
//1.导入fs模块
const fs = require('fs');
//3.同步读取
let str = fs.readFileSync('input.txt','utf8');
console.log("同步读文件:",str);
console.log('2022-1-2')
// 同步读文件: 山海皆可平
// 新年快乐
// 2022-1-2
(2)打开文件
fs.open(path, flags[, mode], callback)
open(path, flags[, mode], callback)
'path':文件名(包含路径)
'flags':打开文件的方式
'mode':设置文件模式,但前提是已创建该文件。它默认为0666,读取和写入
'callback':这是回调函数,有两个参数(err, fd)
--'