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

Node.js如何读取txt文件?该如何正确配置文件路径?

Node.js 文件路径配置规则

现有代码问题说明

你当前控制台输出Buffer内容,并非路径配置错误,是调用readFile时未指定字符编码,补充编码参数即可输出明文内容,修改示例:

var fs = require('fs');

fs.readFile('/Users/PC/Desktop/tutorial/text.txt', 'utf8', function (err, data) {
    if (err) throw err;
    console.log(data);
});

路径分类及使用规则

Node.js的fs模块支持两类路径格式,规则如下:

  • 绝对路径:从系统根目录出发的完整路径
    • macOS/Linux 写法示例:/Users/PC/Desktop/tutorial/text.txt
    • Windows 写法示例:C:/Users/PC/Desktop/tutorial/text.txt,也支持转义后的反斜杠C:\\Users\\PC\\Desktop\\tutorial\\text.txt
    • 优点是路径固定,不会受执行环境影响,缺点是迁移到其他设备时需要修改路径
  • 相对路径:以.或者..开头的路径,路径基准为执行node命令时的终端工作目录(注意不是js文件本身的存放目录)
    • 比如你在/Users/PC/Desktop目录下执行node tutorial/fileread.js,此时相对路径./text.txt对应的实际路径为/Users/PC/Desktop/text.txt,而非tutorial目录下的文件
    • 优点是写法简洁,缺点是执行命令的工作目录变化时容易找不到文件

最佳实践

推荐使用内置变量__dirname配合path模块拼接路径,__dirname的值为当前js文件所在目录的绝对路径,不受执行命令的工作目录影响,跨操作系统兼容性好,示例代码:

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

// 拼接当前js文件同目录下的text.txt的绝对路径
var targetPath = path.join(__dirname, './text.txt');
fs.readFile(targetPath, 'utf8', function (err, data) {
    if (err) throw err;
    console.log(data);
});

如果需要获取执行node命令时的工作目录,可以调用process.cwd()方法。

注意事项

  • macOS/Linux系统下路径大小写敏感,Windows系统默认不敏感,建议严格匹配实际文件名的大小写,避免跨平台运行出错
  • 不需要手动转义路径中的空格、特殊字符,path.join方法会自动适配处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:24:01