nodejs 读取文件中的几行

本文介绍了一个简单的Node.js程序,该程序能够从指定文件中按需逐行读取内容,并允许进行自定义间隔及行数控制。通过自定义函数get_line,可以实现对每一行数据的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近遇到了这样的问题:
如何每次从一个文件里面依次读里面的几行
对nodejs提供的readline和一些三方npm例如lineReader不满意,就自己实现一个简易版本

var fs = require('fs');
var data = fs.readFileSync('url.dat', 'utf8');
var lines = data.split("\n");

function get_line(begin,end) {
    for(var j =begin;j<end;j++){
        console.log(lines[j]);
        //TODO 一些耗时操作
    }
}

var i = 0;
//隔两秒读一次,主要是为了读文件后的其他耗时操作
var interval = setInterval(function(){
    get_line(i,i+5);
    i+=5;

    if(i>lines.length){
        console.log('time to go!!!');
        clearInterval(interval);
    }

},2000);
03-08
### 关于Node.js的入门教程和资源 #### Node.js简介 Node.js 是一种基于Chrome JavaScript运行时建立的平台,用于编写可扩展的网络应用程序。由于其异步I/O模型,Node.js非常适合处理高并发请求的任务[^1]。 #### 基础快捷键与环境配置 对于初学者来说,掌握一些基本命令是非常有帮助的。例如,在命令行工具中输入`node -v`可以查看当前安装版本;而通过`npm init`则能快速创建一个新的项目结构并初始化package.json文件。 #### 文件系统操作——fs模块 为了实现更复杂的功能,开发者经常需要用到内置库如fs(file system)来读写本地磁盘上的数据。下面是一个简单的例子展示如何利用fs同步方式打开指定路径下的文本文件: ```javascript const fs = require('fs'); try { const data = fs.readFileSync('/path/to/file.txt', 'utf8'); console.log(data); } catch (err) { console.error(err); } ``` #### HTTP服务器搭建及路由管理 构建Web应用离不开HTTP服务端的支持。借助Node.js核心API中的http对象,能够轻松启动一个监听特定端口的小型web server,并根据不同URL返回相应的内容给客户端浏览器访问: ```javascript const http = require('http'); // 创建server实例 const server = http.createServer((req, res) => { if(req.url === '/') { // 主页逻辑 res.writeHead(200, {'Content-Type': 'text/html'}); res.end('<h1>Home Page</h1>'); } else if(req.url === '/about') { // about页面逻辑 res.writeHead(200, {'Content-Type': 'text/html'}); res.end('<h1>About Us</h1>'); } }); // 绑定端口号并开启监听 server.listen(3000, () => { console.log('Server is running at port 3000...'); }); ``` #### Express框架介绍及其优势 当业务需求变得越来越庞大时,手动维护复杂的路由映射关系将会非常麻烦。这时就可以考虑采用Express这样的第三方中间件解决方案了。它不仅简化了很多常见的开发任务(比如设置模板引擎),还提供了强大的插件生态系统支持各种高级特性。 #### 静态资源托管实践 除了动态生成HTML外,很多时候还需要向用户提供图片、样式表等静态资产。在Express环境下只需几行代码就能完成这项工作: ```javascript var express = require('express'); var app = express(); app.use(express.static(__dirname + '/public')); app.get('/', function(req, res){ res.send('hello world'); }); app.listen(3000); console.log("Listening on port 3000"); ``` 上述代码片段会自动将/public目录下所有的公开文件暴露出去供外部调用者获取。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值