JS新手读取本地/proc/loadavg文件打印到控制台无报错不生效如何解决
问题原因
- 你代码里用到的
File是浏览器端的API,仅用于处理用户主动上传的文件,既不能直接读取本地任意路径的文件,原生File也没有readTextFile这个实例方法,甚至不能无参数调用new File(),你当前的运行环境没有对应API实现,所以调用后静默失败没有报错,自然也读不到内容。 - JS本身没有内置的本地文件系统操作能力,要实现这个需求必须在Node.js这类服务端JS运行时中执行代码,浏览器环境出于安全限制完全禁止直接访问本地文件。
解决步骤
- 先在你的设备上安装Node.js运行环境
- 使用Node.js内置的
fs文件系统模块编写代码,示例如下:
异步读取(推荐,不会阻塞主线程)
// 引入promise版fs模块,方便用async/await写法 const fs = require('fs').promises; async function readProcLoadavg() { try { // 直接传文件路径,不需要加file://协议头 const content = await fs.readFile('/proc/loadavg', 'utf-8'); console.log('/proc/loadavg 内容:\n', content); } catch (error) { console.error('读取文件失败:', error); } } readProcLoadavg();
同步读取(写法简单,适合简单脚本)
const fs = require('fs'); function readProcLoadavg() { try { const content = fs.readFileSync('/proc/loadavg', 'utf-8'); console.log('/proc/loadavg 内容:\n', content); } catch (error) { console.error('读取文件失败:', error); } } readProcLoadavg();
- 将代码保存为
loadavg.js,打开终端在代码所在目录执行node loadavg.js即可在控制台看到输出结果。
内容的提问来源于stack exchange,提问作者Ben Woodard
相关产品推荐
相关产品推荐

