如何在 Node.js 中将文件作为字符串而不是缓冲区来读取?我正在用 Node.js 编写程序。在那里我需要同步读取一个文件,但如果我这样做,它会将它作为缓冲区而不是字符串返回。我的代码看起来像这样:
const fs = require('fs');
let content = fs.readFileSync('./foo.txt');
console.log(content) // actually logs it as a buffer
请帮忙。
最佳答案
fs.readFileSync
采用第二个参数,允许您指定带有选项的对象,包括返回数据的编码。如果你不指定一个,它默认返回一个 Buffer
。因此,您可以将编码添加到此示例以将其作为字符串返回。
让我们在设置 content
变量的示例中添加编码选项。我们将编码设置为 UTF-8,这是一种标准。
let content = fs.readFileSync('./foo.txt', {encoding: 'utf8'});
如果您不需要指定任何其他选项,还有一个快捷方式:
let content = fs.readFileSync('./foo.txt', 'utf8');
现在当我们记录 content
时,我们应该有一个 String
作为我们使用的结果。
官方文档:https://nodejs.org/api/fs.html#fs_fs_readfilesync_path_options
关于javascript - Node.js 同步读取文件作为字符串(不是缓冲区),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53673643/