我们可以给fs.readFile一个字符串arg。表示文件路径
fs.readFile('/etc/passwd', (err, data) => {
if (err) throw err;
console.log(data);
});
但是我注意到offical documentation说:
fs.readFile(path[, options], callback)
path
可以是Buffer或整数。然后我尝试
const fs = require('fs')
fs.readFile(1, (err, data) => {
if (err) throw err;
console.log(data);
});
然后抛出错误。
我真的很困惑,这个arg怎么可能是整数? 有人可以举个例子吗?
答案 0 :(得分:1)
您可以传递的整数参数应该表示一个有效的文件描述符。例如,stdin
通常具有文件描述符0,因此要从stdin
读取“文件”,可以使用以下命令:
fs.readFile(0, (err, data) => {
if (err) throw err;
console.log(data);
});
您也可以使用process.stdin.fd
代替0。
获取文件描述符的另一种方法是使用fs.open()
。
答案 1 :(得分:0)
根据官方文档:path
是string
或Buffer
或URL
或integer
,并且参数的描述为:“文件名或文件描述符”。
string
| Buffer
| URL
-path
被当作文件名(类似于"/path/to/your/file"
)
integer
-path
被视为file descriptor。
因此,如果您传递integer
,NodeJS将通过文件描述符访问文件。