fs库的介绍及基本用法

模块化后,别人写好的代码功能封装起来,我们直接调用就可以实现各种功能。
js只能写浏览器相关的功能。nodejs会控制操作系统文件。

fs库: file system library,读写本地文件。内置库,nodejs解释器自带,不需额外安装直接引用。
程序首先在当前文件夹下找fs,找不到回去nodejs安装目录 去找。平时变量注意不要跟js关键字或常用库名冲突。

var fs = require(‘fs’)

readFileSync syncomous同步读文件 readFile asyncnomous异步读文件。后面课程http再说同步异步。
tip:如果路径总是写不正确,ide中文件右键copy path复制文件绝对路径。
1.读文本文件 fs.readFile(路径,回调函数(错误,数据){})
参数flag,表示文件操作,r read读纯文本 w write写纯文件,rb bytes:(err:NodeJS,ErrnoException)
坑:相对路径会对脚本运行时的路径,不同位置运行,aaa.txt的路径不同。
建议使用绝对路径。或相对路径从项目根目录下写 TUTORIAL/L6nodejs/xx.jpg
fs.readFile(’./aaa.txt’, { encoding: ‘utf-8’, flag: ‘r’ }, function (err, date) {
if (err) {
console.log(err, ‘读取文件失败’); //error null
} else {
console.log(‘读取成功:\n’, date); // 内容
}
})

2.写文件
fs.watchFile(’./bbb.txt’, ‘被写入的内容\n换行\nbalabala’, function (err) {
if (err) {
console.log(‘读取文件失败:\n’, err);
}
})

3.删除一个文件
fs.unlink(‘bbb.txt’, function (err) {
if (err) {
console.log(‘删除失败’)
} else {
console.log(‘删除成功’)
}

})

4.创建文件夹 make directory
fs.mkdir(‘aaa’, function (err) {
if (err) {
console.log(‘创建文件夹失败’)
} else {
console.log(‘创建文件夹成功’)
}
})

5.判断文件夹是否存在
fs.access(‘aaa’, function (err) {
console.log(err); // 文件夹不存在抛no such dir错误
if (err) {
console.log(‘文件夹不存在,请先创建’);
} else {
console.log(‘文件夹已存在’);
}
})

观察,第五个小李子写在代码最后,但是它的console.log却可能在最前或中部打印。
因为我们现在的写的都是’异步’方法,脚本开始运行,它们同时起步,谁先运算完谁的回调函数就先打印出结果。
回调地狱:实际工作中上面几个连用,先判断文件夹存在,创建文件夹,创建文件,这时缩进已达7层,代码难以维护
promise:类似同步方式写异步代码,后面介绍

6.删除文件夹
fs.rmdir(‘aaa’,function(err){
if(err){

}else{
    console.log('删除文件夹成功')
}

})

7.列出文件夹下的所有信息 类似windows终端的dir命令
fs.readdir(’…/’,function(err,data){
if(!err){
console.log(data);
}
})

9.同步写法。优点代码简单、易于理解。缺点是没有异步效率高,一个函数执行完才能执行下一个。
data = fs.readFileSync(‘aaa’,‘uft-8’);
console.log(date)

8.元信息 一个文件除了文本信息,跟文件自身属性相关的一些信息,例如图片里标题、评分、拍照设备、镜头、拍照时间。
fs.stat(‘aaa.txt’,function(err,date){
if(!err){
console.log(data);
}
})

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值