Node 学习 fs模块的学习

fs是node中重要的系统模块,负责文件的读写,而与其他js模块不同的是,fs模块有同步与异步两种操
,不多哔哔,上代码看看怎么玩

readFile 异步

首先我们介绍一下fs中readFile,也就是 命令

/*
	该命令接受三个参数
	1. 读取文件位置
	2. 文件编码  ‘utf-8’
	3. 回调函数 ,回调函数接收两个参数 err 与 data  如果读取正常则 err 为undefined 否则err为错
	误代码
*/
	//首先引入 fs 模块
	var fs = require('fs);
	//然后我们将从当前目录下的sample.txt文件中读取内容,我们提前将sample文件内容 写为 ’van‘
	fs.readFile('sample.txt','utf-8',function(err,data){
		if(err){
			//打印错误原因
			console.log(err);
		}else {
			//打印sample文件下的内容
			console.log(data);
		}
	})
	//如果读取的是二进制文件,则可以不用添加utf-8

readFileSync 同步

然后介绍一下同步读取,同步读取的话形式比异步读取更加简单

	//首先还是引入fs模块
	var fs = require('fs');
	//因为同步函数没有回调函数,所以我们要用data变量去把命令读取的内存存下来
	var data = fs.readFileSync('sample.txt','utf-8');
	console.log(data);
	//这样就大功告成了,
	//但是到这,如果当前目录下面没有sample文件怎么办呢?我们这里已经没有err 了
	//所以我们要添加一个错误捕获 try catch
	try{
		var data = fs.readFileSync('sample.txt','utf-8');
		console.log(data);
	}catch(e){
		console.log(e);
	}
	//这样就可以安心使用readFileSync了

writeFile

然后就轮到 命令了 ,这个命令与读命令很相似直接上代码吧

/*
	这个函数同样接受三个参数
	1. 要写入的文件的位置
	2. 写入的数据 data
	3. 回调函数,同样回调函数接受一个参数 err
*/	
	var fs = require('fs');
	var data = "i'm van "
	fs.writeFile('sample.txt',data,funciton(err){
		if(err){
			console.log('写入失败')
		}else {
			console.log('写入成功')
		}
	})

writeFileSync

//最终版本
	var fs = require('fs');
	var data = "i'm van ";
	try{
		fs.writeFileSync('sample.txt',data);
		console.log('写入成功');
	}catch(e){
		console.log('写入失败');
	}

Steam流

从流中读入数据

	var fs = require('fs');
	var rs = fs.createReadStream('sample.txt','utf-8');
	rs.on('data',function(chunk){
	    console.log('data');
	    console.log(chunk.length);
	    console.log(chunk);
	})
	rs.on('end',function(){
	    console.log('end');   
	})
	
	rs.on('error',function(err){
	    console.log(err);
	})

写入流

	var fs = require('fs');
	var ws = fs.createWriteStream('sample.txt');
	var data = "i am van";
	ws.write(data);
	ws.on('error',function(e){
		console.log(e);
	})
	ws.on('finish',funciton(){
		console.log('finish');
	})
	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值