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

NodeJS读取文本文件并按冒号拆分每行内容的实现方案

用Node.js读取并处理names.txt文件

假设你的names.txt内容如下:

NAME1:LAST1
NAME2:LAST2
NAME3:LAST3
NAME4:LAST4

以下是两种常用的实现方案:

异步读取(推荐,非阻塞IO)

使用Node.js内置的fs.promises模块实现异步读取,避免阻塞主线程:

const fs = require('fs').promises;
const path = require('path');

async function processNamesFile() {
  try {
    // 读取文件内容
    const fileContent = await fs.readFile(path.join(__dirname, 'names.txt'), 'utf8');
    // 按换行拆分内容,过滤空行后处理每行
    const nameList = fileContent.split('\n')
      .filter(line => line.trim() !== '')
      .map(line => {
        const [firstName, lastName] = line.split(':');
        return {
          NAME: firstName.trim(),
          LAST: lastName.trim()
        };
      });

    console.log('处理后的结果:', nameList);
    return nameList;
  } catch (err) {
    console.error('读取或处理文件出错:', err);
  }
}

// 调用函数
processNamesFile();

同步读取(适合简单场景)

如果是小型脚本或不需要考虑阻塞的场景,可以用同步读取:

const fs = require('fs');
const path = require('path');

try {
  const fileContent = fs.readFileSync(path.join(__dirname, 'names.txt'), 'utf8');
  const nameList = fileContent.split('\n')
    .filter(line => line.trim() !== '')
    .map(line => {
      const [firstName, lastName] = line.split(':');
      return {
        NAME: firstName.trim(),
        LAST: lastName.trim()
      };
    });

  console.log('处理后的结果:', nameList);
} catch (err) {
  console.error('读取或处理文件出错:', err);
}

关键处理细节

  • 用split('\n')拆分每行,同时通过filter过滤空行(避免文件末尾换行导致的无效数据)
  • 用split(':')拆分每行的NAME和LAST字段,再用trim()去除可能存在的空格
  • 两种方案都包含错误处理,捕获文件不存在、权限不足等异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:55:22