1. ホーム
  2. javascript

[解決済み] Node.jsのfs.readFile()はなぜ文字列ではなくバッファを返すのでしょうか?

2022-03-22 20:51:21

質問

の内容を読み取ろうとしています。 test.txt (Javascriptのソースと同じフォルダにあります) そして、このコードを使って表示します。

var fs = require("fs");

fs.readFile("test.txt", function (err, data) {
    if (err) throw err;
    console.log(data);
});

の内容は test.txt に作成されました。 nano :

Node.jsのreadFile()をテストしてみる

そして、こんなのが出てきました。

Nathan-Camposs-MacBook-Pro:node_test Nathan$ node main.js
<Buffer 54 65 73 74 69 6e 67 20 4e 6f 64 65 2e 6a 73 20 72 65 61 64 46 69 6c 65 28 29>
Nathan-Camposs-MacBook-Pro:node_test Nathan$ 

解決方法は?

から ドキュメントを参照してください。

エンコーディングが指定されない場合、生のバッファが返されます。

というのは <Buffer ...> . 有効なエンコーディングを指定する、例えば utf-8 を、ファイル名の後の2番目のパラメータとして指定します。例えば、以下のようなものです。

fs.readFile("test.txt", "utf8", function(err, data) {...});