使用Node.js“无效编码”读取文件错误

问题描述 投票:1回答:1

我正在使用Node.js创建应用程序,并且试图读取一个名为“ datalog.txt”的文件。我使用“追加”功能写入文件:

//Appends buffer data to a given file
function append(filename, buffer) {
  let fd = fs.openSync(filename, 'a+');

  fs.writeSync(fd, str2ab(buffer));

  fs.closeSync(fd);
}

//Converts string to buffer
function str2ab(str) {
  var buf = new ArrayBuffer(str.length*2); // 2 bytes for each char
  var bufView = new Uint16Array(buf);
  for (var i=0, strLen=str.length; i < strLen; i++) {
    bufView[i] = str.charCodeAt(i);
  }
  return buf;
}

append("datalog.txt","12345");

这似乎很棒。但是,现在我想使用fs.readFileSync从文件中读取。我尝试使用此:

const data = fs.readFileSync('datalog.txt', 'utf16le');

我将编码参数更改为the Node documentation中列出的所有编码类型,但是所有这些均导致此错误:

TypeError: Argument at index 2 is invalid: Invalid encoding 

我想做的就是能够从“ datalog.txt”中读取数据。任何帮助将不胜感激!

注意:一旦我可以读取文件的数据,就希望能够获得文件所有行的列表。

node.js fs
1个回答
0
投票

编码和类型是一个对象:

const data = fs.readFileSync('datalog.txt',  {encoding:'utf16le'});
© www.soinside.com 2019 - 2024. All rights reserved.