【发布时间】:2020-06-06 07:41:43
【问题描述】:
我正在使用 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”中读取数据。任何帮助将不胜感激!
注意:一旦我可以读取文件的数据,我希望能够获得文件所有行的列表。
【问题讨论】:
-
fs.readFileSync('datalog.txt', 'utf-16')工作吗? -
richytong 没有同样的错误,对不起。