node.js 读取文件内容

来源:互联网 发布:手机集线器端口电涌 编辑:程序博客网 时间:2024/05/22 10:55

 

//该例子是在windows系统下面跑的var fs = require('fs');//如果地址是下面定义的这种方式是无法找到的,他会默认去找Node.js安装路径下的文件,如果没有回报错//var path="d:\hb.txt";//如果将路径的分隔符改为"/"则可以找到var path="d:/hb.txt";var fileSize;var file = fs.readFileSync(path, "utf8");//打印文件的内容console.log(file);

  

备注:上面的例子我是以文本字符测试的,没有测试二进制

 

 下面这个例子摘抄至  http://www.jiangkunlun.com/2011/11/node-js_read/

//File Systemvar fs = require('fs');//fd is the file descriptor used by the WriteStream.var logFd;//日志文件var log = "D:/hb.txt";//读取过程需要的var buf,logSize,start = 0,length,offse = 0,logArr = '',LENGHT = 1024 * 1024;//每次读取的长度,1M //读取文件信息,获取文件长度fs.stat(log, function(err, stats){if(err) throw err;//console.log(JSON.stringify(stats));logSize = stats.size;//打开文件fs.open(log, 'r', 0666, function(err, fd){if(err) throw err;logFd = fd;length = LENGHT < (logSize - offse) ? LENGHT : (logSize - offse);buf = new Buffer(length);//日志读取readLog();});});//日志读取function readLog(){//读取fs.read(logFd, buf, start, length, offse, function(err){if(err) throw err;//按行切分logArr = buf.toString('utf8').split('\n');var last = false;//判断是否是最后一次调用if(offse + length < logSize){//最后一行不完整,抛掉,下次在取last = logArr.pop();}//调用日志分析模块,对logArr做处理logAnalysis();//处理参数,准备下次调用if(last !== false){offse += length - last.length;length = LENGHT < (logSize - offse) ? LENGHT : (logSize - offse);buf = new Buffer(length);//递归读取if(!lastRead){readLog();}}});}//日志分析模块function logAnalysis(){//TODO:日志分析与读取......console.log(logArr.length);console.log(logArr[0]);console.log(logArr[logArr.length - 1]);console.log('------');}

 

0 0
原创粉丝点击