javascript - Node.js 同步读取文件作为字符串(不是缓冲区)

标签 javascript node.js string file buffer

如何在 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/

相关文章:

javascript - 用于拆分包含文本和 url 的字符串的正则表达式

javascript - Bootstrap 3.2 下拉菜单切换在 iPhone 上不起作用

node.js - Mongoose 聚合与 geonear

java - Java中如何高效地将二进制字符串转换为二进制字节数组?

c - 从函数返回字符串数组的指针

javascript - 将 jQueryUI 对话框中的 <p> 重新定位到 CSS 打印的中心位置

javascript 窗帘(用于指示繁忙的进程)未显示整个进程。可能我对回调的理解不够

javascript - 如何将所有请求重定向到特定域名?

mysql - 针对许多相同输入的特定 MySQL 规范化

c++ - 字典序、字符串、c++