node文件系统fs

node是服务器端语言,所有它是有文件读写系统的,fs模块就是node提供的文件读写系统,在fs文件系统中均有同步,异步版本
异步版本就是最后一个参数为回调函数,回调函数第一个信息为错误信息(error),两种方法建议使用异步,因为异步速度快,性能高,没有堵塞,且能在错误时抛出错误

文件系统基础操作

文件读取
异步读取

let fs = require('fs');//引入fs文件系统
fs.readFile('./new.txt',(err,data)=>{//通过fs.readFile('文件地址',(错误信息,文件内容)=>{}回调函数)方法读取文件
	if (err) {
		throw err	//如果错误,抛出错误
	}else{
		console.log(data)	//没有错误,打印文件内容,打印的是计算机码。可以通过toString()转化
	}
})
同步读取
let fs = require('fs');
let data = fs.readFileSync('./new.txt');//文件内容赋值给data
console.log(data.toString());

文件写入
如果不存在该文件,则新创建一个,若存在,则覆盖原有文件
异步写入

let fs = require('fs');
let data = "console.log(Hello word !)"; //定义一个内容方便插入,无关紧要,可以直接在方法里插入
fs.writeFile('./demo.js',data,(err)=>{	//通过fs.writeFile(‘写入的地址’,写入的内容,(错误信息)=>{}回调函数)方法写入数据
	if (err) {
		throw err
	}else{
		console.log("文件写入成功")	//文件写入成功则打印
	}
})

同步写入

let fs = require('fs');
fs.writeFileSync('./demo.js','hello node.js!');

查看文件信息
异步写法

let fs = require('fs');
fs.stat('./demo.js',(err,state)=>{//通过fs.stat()方法读取文件信息fs.stat('文件地址',(错误信息,文件信息)=>{}回调函数)
	if (err) {
		throw err
	}else{
		console.log(state)
	}
})

同步写法

let fs = require('fs');
let state = fs.statSync('./demo.js')
console.log(state)

state类中拥有一些方法

let fs = require('fs');
fs.stat('./demo.js',(err,state)=>{//通过fs.stat()方法读取文件信息fs.stat('文件地址',(错误信息,文件信息)=>{}回调函数)
	if (err) {
		throw err
	}else{
		console.log(state.isFile());//判断是不是文件,是返回true
		console.log(state.isDirectory());//判断是不是目录,是返回true
	}
})

删除文件

let fs = require('fs');
fs.unlink('./demo.js',(err)=>{//通过fs.unlink('文件地址',回调函数)方法
	if (err) {
		throw err
	}else{
		console.log("删除成功")
	}
})

文件夹目录操作

查看文件夹

let fs = require('fs');
fs.readdir('./demo',(err,dataDir)=>{//查看文件夹,目录
	if (err) {
		throw err
	}else{
		console.log(dataDir)
	}
});

删除空文件夹

fs.rmdir('/Users/xmly/Desktop/node/demo',(err)=>{//通过rmdir()方法
	if (err) {
		throw err
	}else{
		console.log('删除目录成功')
	}
})

读取流写入流

什么是流?
所有互联网传输方式都是流,流是一种有起点有重点的数据传输方式
读取流

let fs = require('fs');
let stream = fs.createReadStream('./data.txt');	//引入读取流
stream.on('data',(value)=>{
	console.log(value)
});
stream.on('error',(error)=>{
	console.log(error)
})

写入流

let fs = require('fs');
let write = fs.createWriteStream('./new.txt');//引入写入流模板
write.write('i');
write.write('am');
write.write('boy');//分段写入内容
write.end();//表示写入结束
write.on('finish',()=>{
	console.log('写入成功')//write完成
});
write.on('error',(error)=>{
	console.log(error)//出错时打印
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值