`
aigo
  • 浏览: 2645591 次
  • 性别: Icon_minigender_1
  • 来自: 宜昌
社区版块
存档分类
最新评论

[nodejs]按行读取文本文件

阅读更多

原文:https://segmentfault.com/a/1190000000740718

 

var stream = require('stream')
var liner = new stream.Transform( { objectMode: true } )

liner._transform = function (chunk, encoding, done) {
  var data = chunk.toString()
  if (this._lastLineData) data = this._lastLineData + data

  var lines = data.split('\n')
  this._lastLineData = lines.splice(lines.length-1,1)[0]

  lines.forEach(this.push.bind(this))
  done()
}

liner._flush = function (done) {
     if (this._lastLineData) this.push(this._lastLineData)
     this._lastLineData = null
     done()
}

module.exports = liner

//测试:打印出文本文件的每一行
var fs = require('fs')
var source = fs.createReadStream('aaa.txt')
source.pipe(liner)
liner.on('readable', function () {
  var line
  while (line = liner.read()) {
    console.log(line);
  }
})

 

分享到:
评论

相关推荐

    教你用十行node.js代码读取docx的文本

    标签部分则强调了Node.js在读取文件内容,特别是文本文件方面的应用。在详细内容中,文章首先提出了处理Word文档的需求,分别涉及将Word文档转换成PDF文件和从文档中提取文本内容存入数据库。作者探讨了多种可能的...

    Node.js-istextorbinary-检查一个文件是否文本或二进制。

    在Node.js环境中,开发人员经常需要处理各种类型的文件,包括文本文件和二进制文件。在实际应用中,区分这两种类型的文件至关重要,因为处理方式和读取策略会有所不同。"istextorbinary"是一个非常实用的Node.js模块...

    nodejs实现日志读取、日志查找及日志刷新的方法分析

    5. nodejs按行读取文件:由于日志文件通常较大,逐行读取可以减少内存使用,并且方便进行日志查找。使用Node.js中的readline模块,可以方便地实现按行读取文件内容的功能,每读取到一行日志,就可以进行相应的处理,...

    nodejs读取本地中文json文件出现乱码解决方法

    在读取CSV或其他文本文件时,可以按照以下步骤进行: ```javascript var iconv = require('iconv-lite'); var fs = require('fs'); var fileStr = fs.readFileSync('D:\\test.csv', { encoding: 'binary' }); var ...

    nodejs实现遍历文件夹并统计文件大小

    最后,程序将拼接好的字符串写入到一个文本文件中。这里使用了`fs.writeFile`方法,并指定编码为'utf-8',完成文件写入后通过回调函数`complete`来确认文件已经成功生成。 这段代码不仅是对Node.js文件系统模块fs...

    Nodejs中读取中文文件编码问题、发送邮件和定时任务实例

    关于nodejs读取中文文件真是折腾了不少时间,网上各种方案,最后没有一个适用我,好在解决了。...准备一个文本文件(当然也可以是csv文件等)test.txt和text.csv,nodejs文件test.js如下: 代码如下: var iconv =

    node.js使用fs读取文件出错的解决方案

    使用nodejs的fs模块读取文件时习惯用相对路径,但是运行的时候出现了上述的错误,原因就是fs模块读取文件的相对路径是以启动server.js的位置为基准的,而不是以server.js文件的位置。 这就是这篇文章所要讲述的问题...

    nodejs对字符串进行编辑并生成文件

    例如,可以使用`fs.readFile()`或`fs.readFileSync()`来读取文件内容,然后进行编辑,再写回文件。另外,如果需要追加内容而不是覆盖,可以使用`fs.appendFile()`或`fs.appendFileSync()`。 在提供的`test.js`文件...

    Node.js实现的XML文件提取内容并转换为TXT

    5. **写入TXT文件**:获取到XML文件的文本内容后,使用`fs.writeFile()`或`fs.writeFileSync()`方法将内容写入新的TXT文件中。文件名可以是原XML文件名加上`.txt`后缀,或者根据需要自定义。 6. **错误处理**:在...

    Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容

    例如,`pdftotext yourfile.pdf output.txt`将把PDF文件转换为名为`output.txt`的文本文件。 在Node.js环境中,你可以使用`child_process`模块来调用这个命令。以下是一个简单的示例: ```javascript const { exec...

    【JavaScript源代码】NodeJS实现图片文本分割.docx

    在本示例中,主要使用了`fs`(用于文件系统操作)和`jpeg-js`(用于JPEG格式图像的操作)这两个模块。 ```javascript var fs = require('fs'); var jpeg = require('jpeg-js'); ``` ##### 2. RGB颜色值计算 为了...

    Node.js-textract从各种文件抽取文本的Node.js模块

    例如,你可以结合`fs`模块读取文件,或者使用`axios`或`request`库下载远程文件,然后再用textract提取文本。这使得textract成为构建复杂文件处理工作流的一个强大组件。 总的来说,Node.js-textract是Node.js开发...

    nodejs案例

    事件驱动意味着程序会在特定事件(如文件读取完成、网络请求完成等)发生时调用回调函数,而不是一直等待这些操作完成。 在实现 html2markdown 工具时,Node.js 可能会使用到以下模块和技术: 1. `cheerio`:这是一...

    nodejs服务搭建教程 nodejs访问本地站点文件

    4. 使用fs模块的readFile()方法读取文件,读取成功则通过回调函数中的data参数返回文件内容,读取失败则返回404错误信息。 在实际操作中,还需要在cmd控制台中进入server.js所在的目录,然后执行node server.js命令...

    nodejs教程(alsotang)

    2. 文件系统模块:Node.js 内置了文件系统模块(fs),用于读写文件,如读取文本文件、创建新文件、删除文件等操作。 3.事件驱动模型:Node.js 使用事件驱动非阻塞 I/O 模型,提高了性能,使得处理大量并发请求成为...

    dxf-parser_javascript_读取DXF_dxfparser_dxf_

    dxfparser库读取DXF文件,解析其ASCII文本,并将数据结构化为JavaScript对象,便于进一步处理。这个库可能实现了对各个段的解析,例如: - 解析HEADER段,提取版本信息和自定义变量。 - 处理TABLES,创建图层、线型...

    spiderDir:NodeJS应用程序爬入目录搜索带有“关键字”的文件

    NodeJS应用程序爬入目录搜索带有“关键字”的文件" 这个标题表明我们正在讨论一个使用Node.js编写的爬虫应用,它的主要功能是遍历指定目录及其子目录,查找包含特定"关键字"的文件,并将结果记录到文本文件中。...

    nodejs服务器.zip

    对于语音识别,腾讯云提供了语音识别服务,Node.js可以通过`request`或者更现代的`axios`库来发起HTTP请求,将音频文件或者音频流转换成文本。这个过程通常涉及上传音频文件,指定识别参数,比如语言类型、采样率等...

Global site tag (gtag.js) - Google Analytics