• 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);//9
    console.log(buf.toString());//伍姣龙
    console.log(buf.toJSON(buf));//[ 228, 188, 141, 229, 167, 163, 233, 190, 153 ]
    5、事件驱动【关键字:eventEmitter.on('事件名',function(){})| eventEmitter.emit('事件名')
    1. var events=require('events');
    2. //实例化EventLitter对象
    3. var eventEmitter=new events.EventEmitter();
    4. eventEmitter.addListener('connection',function(){
    5. console.log('连接陈宫2!');
    6. });
    7. eventEmitter.addListener('connection',function(){
    8. console.log('连接陈宫3');
    9. });
    10. eventEmitter.on('connection',function(){
    11. console.log('连接成功1');
    12. //触发 data_received
    13. eventEmitter.emit('data_received');
    14. });
    15. eventEmitter.on('data_received',function(){
    16. console.log('数据接收成功');
    17. });
    18. //触发事件
    19. eventEmitter.emit('connection');
    20. console.log('程序执行完毕');
    6、文件流
    【读取流】 四大事件  data   end  error  finish【用在写入的时候】
    1. var fs=require('fs');
    2. var zlib=require('zlib');//文件解压缩模块
    3. var read=function(){
    4. var data='';
    5. var readerStream=fs.createReadStream('input.txt','utf-8');
    6. //当有数据时触发
    7. readerStream.on('data',function(chunk){
    8. console.log('正在读取数据');
    9. data+=chunk;
    10. });
    11. //文件没有更多数据时候触发
    12. readerStream.on('end',function(){
    13. console.log('数据读取完毕:'+data);
    14. });
    15. //在接受和写入过程出错时触发
    16. readerStream.on('error',function(err){
    17. console.log(err.stack);
    18. });
    19. }
    【写入流】会创建一个output.txt文件
    1. var write=function(){
    2. //创建写入流
    3. var writeStream=fs.createWriteStream('output.txt');
    4. var data='我是一个好孩子';
    5. writeStream.write(data,'utf-8');
    6. writeStream.end();
    7. writeStream.on('finish',function(){
    8. console.log('写入完成');
    9. });
    10. writeStream.on('error',function(err){
    11. console.log(err.stack);
    12. });
    13. console.log('程序执行完成');
    14. }
    【管道流】 从一个流中读取然后写到另一个输出流
    1. var gdStream=function(){
    2. var readerStream=fs.createReadStream('input.txt');
    3. var writeStream=fs.createWriteStream('output.txt');
    4. readerStream.pipe(writeStream);
    5. console.log('程序执行完成');
    6. }
    【链式流】文件解压缩操作
    1. /链式流创建压缩文件
    2. var gZipStream=function(){
    3. //var fs=require('fs');
    4. fs.createReadStream('input.txt').pipe(zlib.createGzip()).pipe(fs.createWriteStream('input.txt.gz'));
    5. }
    6. //gZipStream();
    7. //解压文件
    8. var gunZip=function(){
    9. fs.createReadStream('input.txt.gz').pipe(zlib.createGunzip()).pipe(fs.createWriteStream('input2.txt'));
    10. }
    11. gunZip();
    7、简单服务器创建并设置请求头
    1. var http=require('http');
    2. var server=http.createServer(function(req,res){
    3. var body='hello word';
    4. res.setHeader('Content-Length',body.length);
    5. res.setHeader('Content-Type','text/plain');
    6. res.statusCode=302;
    7. res.end(body);
    8. });
    9. server.listen(3000);
     
     
     





  • 相关阅读:
    hibernate中持久化对象的生命周期(转载)
    IDEA调试技巧之条件断点
    POI中不推荐的方法与其替代的方法
    visualvm监控类是否是多例模式
    IDEA中Maven项目使用Junit4单元测试的写法
    JPQL的关联查询
    poi的cellstyle陷阱,样式覆盖
    studio 连不上远程仓库的各种原因分析
    Concurrent usage detected
    我的SSH框架实例(附源码)
  • 原文地址:https://www.cnblogs.com/wujiaolong/p/36ca0e2e2d09166df8df2a8599ac3974.html
Copyright © 2020-2023  润新知