cal*_*531 10 javascript html5 truncate filewriter
我正在尝试HTML5文件API,我需要使用一种我不太了解的方法(仅仅因为它几乎没有记录在任何地方).
我在谈论FileWriter truncate()方法,我知道它做了我需要做的事情.基本上,不是将文本附加到某些文件数据或使用seek()来覆盖某个部分,我想用其他东西覆盖所有数据(例如从"somedata"到"").
这是HTML5Rocks中的FileWriter设置片段,其中添加了truncate().
function onInitFs(fs) {
fs.root.getFile('log.txt', {create: false}, function(fileEntry) {
// Create a FileWriter object for our FileEntry (log.txt).
fileEntry.createWriter(function(fileWriter) {
fileWriter.seek(fileWriter.length); // Start write position at EOF.
fileWriter.truncate(1);
// Create a new Blob and write it to log.txt.
var bb = new BlobBuilder(); // Note: window.WebKitBlobBuilder in Chrome 12.
bb.append('Hello World');
fileWriter.write(bb.getBlob('text/plain'));
}, errorHandler);
}, errorHandler);
}
window.requestFileSystem(window.PERSISTENT, 1024*1024, onInitFs, errorHandler);
Run Code Online (Sandbox Code Playgroud)
当它调用writer.truncate()时,调用writer.write()会引发File Exception错误.我相信这是因为readyState设置为WRITING.不幸的是,我不知道如何解决这个问题.
我已经试过翻翻的HTML5Rocks节上这一点,但它并没有告诉我任何关于截断()方法(虽然我知道它是什么的Webkit JS控制台告诉我存在).
长话短说,我怎么能正确使用truncate()方法而不会出错?
asb*_*nge 11
这样的事情可能会更加重要:
truncate将文件的长度更改为指定的长度
fileEntry.createWriter(function(fileWriter) {
var truncated = false;
fileWriter.onwriteend = function(e) {
if (!truncated) {
truncated = true;
this.truncate(this.position);
return;
}
console.log('Write completed.');
};
fileWriter.onerror = function(e) {
console.log('Write failed: ' + e.toString());
};
var blob = new Blob(['helo'], {type: 'plain/text'});
fileWriter.write(blob);
}, errorHandler);
Run Code Online (Sandbox Code Playgroud)
小智 7
你需要更多的async'y.:)
fileEntry.createWriter(function(fileWriter) {
fileWriter.onwriteend = function(trunc) {
fileWriter.onwriteend = null; // Avoid an infinite loop.
// Create a new Blob and write it to log.txt.
var bb = new BlobBuilder(); // Note: window.WebKitBlobBuilder in Chrome 12.
bb.append('Hello World');
fileWriter.write(bb.getBlob('text/plain'));
}
fileWriter.seek(fileWriter.length); // Start write position at EOF.
fileWriter.truncate(1);
}, errorHandler);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6653 次 |
| 最近记录: |