1-2 nodejs小节 文件读取
1、表达式
在命令行输入 node回车后,可以在后边输入相应的表达式,进行运算操作
2、阻塞文件读取
var data=fs.readFileSync('input.txt', 'utf-8');
3、非阻塞文件读取
fs.readFile('input.txt',function(err,data){if(err){console.log(err);}else{console.log(data.toString());}});
4、将文件写入缓冲区
var buf=new Buffer('伍姣龙', 'utf-8');//一个汉子在 utf-8下占3个字节console.log(buf.length);//9console.log(buf.toString());//伍姣龙console.log(buf.toJSON(buf));//[ 228, 188, 141, 229, 167, 163, 233, 190, 153 ]
5、事件驱动【关键字:eventEmitter.on('事件名',function(){})| eventEmitter.emit('事件名') 】
var events=require('events');//实例化EventLitter对象var eventEmitter=new events.EventEmitter();eventEmitter.addListener('connection',function(){console.log('连接陈宫2!');});eventEmitter.addListener('connection',function(){console.log('连接陈宫3');});eventEmitter.on('connection',function(){console.log('连接成功1');//触发 data_receivedeventEmitter.emit('data_received');});eventEmitter.on('data_received',function(){console.log('数据接收成功');});//触发事件eventEmitter.emit('connection');console.log('程序执行完毕');
6、文件流
【读取流】 四大事件 data end error finish【用在写入的时候】
var fs=require('fs');var zlib=require('zlib');//文件解压缩模块var read=function(){var data='';var readerStream=fs.createReadStream('input.txt','utf-8');//当有数据时触发readerStream.on('data',function(chunk){console.log('正在读取数据');data+=chunk;});//文件没有更多数据时候触发readerStream.on('end',function(){console.log('数据读取完毕:'+data);});//在接受和写入过程出错时触发readerStream.on('error',function(err){console.log(err.stack);});}
【写入流】会创建一个output.txt文件
var write=function(){//创建写入流var writeStream=fs.createWriteStream('output.txt');var data='我是一个好孩子';writeStream.write(data,'utf-8');writeStream.end();writeStream.on('finish',function(){console.log('写入完成');});writeStream.on('error',function(err){console.log(err.stack);});console.log('程序执行完成');}
【管道流】 从一个流中读取然后写到另一个输出流
var gdStream=function(){var readerStream=fs.createReadStream('input.txt');var writeStream=fs.createWriteStream('output.txt');readerStream.pipe(writeStream);console.log('程序执行完成');}
【链式流】文件解压缩操作
/链式流创建压缩文件var gZipStream=function(){//var fs=require('fs');fs.createReadStream('input.txt').pipe(zlib.createGzip()).pipe(fs.createWriteStream('input.txt.gz'));}//gZipStream();//解压文件var gunZip=function(){fs.createReadStream('input.txt.gz').pipe(zlib.createGunzip()).pipe(fs.createWriteStream('input2.txt'));}gunZip();
7、简单服务器创建并设置请求头
var http=require('http');var server=http.createServer(function(req,res){var body='hello word';res.setHeader('Content-Length',body.length);res.setHeader('Content-Type','text/plain');res.statusCode=302;res.end(body);});server.listen(3000);

浙公网安备 33010602011771号