`
田进丰
  • 浏览: 35386 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

nodejs 逐行读写文件

 
阅读更多

    在前端要想要读写文件的话,AJAX是一个不错的选择。但是在后端就很麻烦,所以就要自己写代码来完成这个读写的操作,下面我给博友分享一个我自己感觉不错的读写文件的代码,希望能帮到你们:

   1.首先在你的项目里面安装模块,它要安装的也就是一个readline.逐行读的意思。

npm install readline --save
var readline = require('readline');

   2.其次你还需要定义几个变量:

var fs = require('fs');
var os = require('os');
var fReadName = './hp.obo';//准备要读的文件
var fWriteName = './h_p.json';//准备要写的文件

   3、代码:由于我要读的是表格文件,所以一行一行读出来之后将他转换成了数组的形式。

    var fRead = fs.createReadStream(fReadName);
    var fWrite = fs.createWriteStream(fWriteName);
    var objReadline = readline.createInterface({
        input: fRead,
    });
    var head = {};
    var title = {};
    var all = {}
    var file = '';
    objReadline.on('line', (line)=>{
       var b = ((line.toString()).split("\t"));
        all['_index'] = 'blog'
        all['_type'] = b[0];
        all['_id'] = b[1];
        head.create = all
        title.name = b[2]
        title.id = b[4];
        title.ORPHANET = b[5];
        title.Ienergy = b[6];
        title.typ = b[8];
        title.count = b[10];
        title.title = b[11];
        title.time = b[12];
        title.title = b[13];
        fff = JSON.stringify(head) + '\n' + JSON.stringify(title) + '\n'
    fWrite.write(fff ); // 下一行
});
objReadline.on('close', ()=>{
    console.log('readline close...');
});

 这种方法的好处是可以自己判断什么时候结束,之前还有一种逐行读写的方法,lineReader.eachLine('p_a.tab', function (line) {}),由于没有明确的完成标志,所以导致我做了很多无用功。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics