You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Node.js的readline模块从TXT文件中读取指定数量的账号行

实现代码

const readline = require("readline");
const fs = require("fs");

// 角色对应账号数量配置
const config = {
    "yourroleid1": 1500,
    "yourroleid2": 75,
    "yourroleid3": 50,
    "yourroleid4": 20,
    "yourroleid5": 10,
    "yourroleid6": 5
} 

// 替换为当前请求用户的实际roleid
const currentRoleId = "yourroleid5";
const maxAccountCount = config[currentRoleId];
let currentCount = 0;

const fileStream = fs.createReadStream(__dirname + "/accounts.txt");
const rl = readline.createInterface({
    input: fileStream,
    crlfDelay: Infinity // 兼容Windows、Linux等不同系统的换行符格式
});

rl.on("line", (line) => {
    // 过滤空行
    const trimmedLine = line.trim();
    if (!trimmedLine) return;

    currentCount++;
    const [username, password] = trimmedLine.split(':');
    // 此处替换为你自己的账号处理逻辑
    console.log(`账号:${username},密码:${password}`);

    // 达到上限后立即停止读取
    if (currentCount >= maxAccountCount) {
        rl.close();
        fileStream.destroy();
    }
});

rl.on("close", () => {
    console.log(`读取结束,共输出${currentCount}个账号`);
    // 后续业务逻辑可以写在这里
});

核心说明

  • 你之前的代码问题是未在达到行数上限后终止读取流程,文件剩余内容会持续触发line事件输出多余内容。上述代码在计数达标后调用rl.close()终止readline实例,同时销毁文件流释放资源,不会再产生多余输出。
  • 可直接根据当前用户的roleid从配置中读取对应账号上限,无需硬编码数值。
  • 新增空行过滤逻辑,避免账号文件中的空白行被误算为有效账号。

内容的提问来源于stack exchange,提问作者Johnty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 01:57:04