Node.Js Buffer类(缓冲区)-(三)文件读取实例

一、读取图片,base64格式和二进制相互转换

var fs=require('fs');
var path=require('path');
var file=path.resolve('F:/MyDocument/Picture/Icon/使用过的/play.png');
var content=new Buffer(0);//累计合并读取片段
fs.readFile(file,function(err,chunk){
	if(err)
		return console.error(err);
	console.log(chunk);
	//将图片转换成base64 字符串
	console.log(chunk.toString('base64'));
	console.info('*********************');
	//合并Buffer
	content=Buffer.concat([content,chunk]);
	console.log(content.toString('base64'));

	//将base64字符串转换成二进制保存成图片
	 var imgData=new Buffer(content,'base64');
	 fs.writeFile(path.resolve('/test1/logo.png'),imgData,function(err){
	 	if(err)
	 		return console.error(err);
	 	console.log('保存文件成功');
	 });
});

二、读取文本文件,及支持字符编码之间相互转换

var fs=require('fs');
var path=require('path');
var file=path.resolve('F:/MyDocument/Picture/Icon/使用过的/play.png');
var content=new Buffer(0);//累计合并读取片段
fs.readFile(file,function(err,chunk){
	if(err)
		return console.error(err);
	console.log(chunk);
	//将图片转换成base64 字符串
	console.log(chunk.toString('base64'));
	console.info('*********************');
	//合并Buffer
	content=Buffer.concat([content,chunk]);
	console.log(content.toString('base64'));

	//将base64字符串转换成二进制保存成图片
	 var imgData=new Buffer(content,'base64');
	 fs.writeFile(path.resolve('/test1/logo.png'),imgData,function(err){
	 	if(err)
	 		return console.error(err);
	 	console.log('保存文件成功');
	 });
});
三、读取流操作实例

var fs=require('fs');
var path=require('path');
var file=path.resolve('/test1/one.txt');
var rs=fs.createReadStream(file,{highWaterMark:5});
var dataArr=[],//存储读取的结果集合
	len=0;
/*
*  1.读取结果为Buffer对象
 */
rs.on('data',function(chunk){
	console.log(Buffer.isBuffer(chunk));
	dataArr.push(chunk);
	len+=chunk.length;
});
rs.on('end',function(){
    var	result=Buffer.concat(dataArr,len).toString();
	console.log(result);
});


Buffer 类二:http://blog.csdn.net/u011127019/article/details/52512353

Buffer 类一:http://blog.csdn.net/u011127019/article/details/52512242

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值