关于node.js读取文件以及操作流文件的个人理解

最近公司项目不是很急,所以想静下心学习node.js,教程是《廖雪峰的官方网站》中的node教程,学习基础还是可以的,但是好像没有深入 地址:廖雪峰的官方网站之node学习

有关node的安装以及npm安装这里就不啰嗦了,我一介菜鸟都会的操作,各位大佬肯定也是会的。

1.关于node读写操作

首先给大家介绍一下 node里面很重要的一个朋友 **fs**
文档中说 fs模块就是文件系统模块,负责**读写文件**
fs提供了同步和异步的方法 下面会有介绍
引用fs的方法很简单,通过node内置的require操作就好
		***var fs = require('fs')***

假设你的项目中已经有了一个**data.txt(名字是随便取的)**的文件,你想要去了解他里面的内容就可以进行以下操作:
fs.readFile('data.txt','utf-8',function(err,data){   //注意 **readFile** 是异步读取数据的方法,同步读取数据是readFileSync
	if(err){
		console.log(err);   //错误处理提示
	}else{
		console.log(data); //data就是你所查找的文件内的内容
	}
})

//说完了异步读取数据的过程,再来看下同步读取数据的过程

var data = fs.readFileSync('data.txt');
console.log(data); //这个data就是文件内容

//有同学会好奇那同步读取报错怎么办,好办 用到了 try....catch

try{
	var data = fs.readFileSync('data.txt');
	console.log(data); //这个data就是文件内容
}catch(err){
	console.log(err)
}

2. 关于node ‘流’ stream

stream是Node.js提供的又一个仅在服务区端可用的模块,目的是支持“流”这种数据结构。我对这个流的理解就是:你的文件中的数据就可以看做是一种流,每条数据都是一条单独的数据流。

数据流的操作

	**读取流**
	首先利用fs 打开一个流,还是默认你的项目中有个data.txt文件
		
		var rs = fs.createReadStream('data.txt');
		rs.on('data',function(chunk){
			console.log(chunk); //这个chuank就是你读取出来的流
		})
		//流既然有读取就有关闭
		rs.on('end',function(){
			console.log('end');
		})
		
		//有成功就有失败
		rs.on('err',function(err){
			console.log(err) //错误信息
		})

		**写入流**
		
		//写入流和读取流操作差不多 都有创建结束... 但是写入流可以一直写入 知道end触发
		var ws = fs.createWriteStream('data1.txt');
		ws.write('我是有爱心的小蚂蚁');
		ws.write('我准备结束写入了');
		ws.end(); //写入结束

3.关于pipe

	对于pipe的理解,我是这么认为的,就是类似于js中的拷贝或者是赋值,我a.txt中有的数据,可以通过pipe操作写入b.txt中,下面是操作:

	var rs = fs.createReadStream('a.txt');
	var ws = fs.createWriteStream('b.txt');
	//记住 pipe操作必定是一读一写,不然数据从何来...
	**rs.pipe(ws);**  //这样b.txt中就存在了a.txt的数据

版权声明:本文为qq_26732261原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。