Bil*_*ill 10 javascript node.js
如果我在 Node 中读取 wasm 文件,fs.readFileSync我会得到我想要的格式的文件,但是当我尝试使用文件阅读器在浏览器中执行完全相同的操作时,我会以某种方式得到错误的格式?
fs.readFileSyncbut 在浏览器中相当于什么?
是否fs.readFileSync将文件视为数组缓冲区或二进制字符串或其他内容?
<input type="file" onchange="_readWasmFile">
Run Code Online (Sandbox Code Playgroud)
和js
_readWasmFile(event) {
const file = event.target.files[0];
let reader = new FileReader();
reader.readAsBinaryString(file);
reader.onload = () => {
this.sendWasm = reader.result;
};
}
Run Code Online (Sandbox Code Playgroud)
在浏览器中使用FileReader时,您基本上有 3 个选项。最接近 Node 的readFileSync()似乎是readAsText()方法;
const file = event.target.files[0];
let reader = new FileReader();
//Option 1
reader.readAsText(file);
//Option 2
reader.readAsBinaryString(file);
//Option 3
reader.readAsArrayBuffer(file);
Run Code Online (Sandbox Code Playgroud)
使用readAsText(),您可以指定编码以确保正确读取文件:
reader.readAsText(file, 'utf-8');
Run Code Online (Sandbox Code Playgroud)
Node 的readFileSync()方法还有一个可选属性来指定编码:
const data = fs.readFileSync('./input.txt',
{ encoding: 'utf8', flag: 'r' });
Run Code Online (Sandbox Code Playgroud)