[英]fs.readFile read only 2 first symbols
我尝试像这样使用sdk fs:
var fs = require('sdk/io/fs');
fs.readFile(filepath, 'utf-8', function (error, data) {
if (components.isSuccessCode(error)) {
var lines = data.toString().split(/[\r\n]+/);
for (var i = 0; i < lines.length; i++) {
listener.process(lines[i]);
}
}
else {
callback({error: error});
}
}
但我只得到file(2 mb)的2个第一个符号。 为什么我会有如此奇怪的行为?
sdk中的readFile声明:
function readFile(path, encoding, callback) {
if (isFunction(encoding)) {
callback = encoding
encoding = null
}
let buffer = null;
try {
let readStream = new ReadStream(path);
readStream.on("data", function(data) {
if (!buffer){
buffer = data;
}
else{
buffer = Buffer.concat([buffer, data], 2);
}
});
readStream.on("error", function onError(error) {
callback(error);
});
readStream.on("end", function onEnd() {
// Note: Need to destroy before invoking a callback
// so that file descriptor is released.
readStream.destroy();
callback(null, buffer);
});
}
catch (error) {
setTimeout(callback, 0, error);
}
};
不要使用fs.readFile使用OS.file: https : //developer.mozilla.org/en-US/docs/JavaScript_OS.File/OS.File_for_the_main_thread
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.