【发布时间】:2011-10-11 04:18:24
【问题描述】:
我正在试验 HTML5 文件 API,我需要使用一种我不太了解的方法(仅仅是因为它几乎没有在任何地方记录)。
我说的是 FileWriter truncate() 方法,我知道它可以完成我需要做的事情。基本上,我不想将文本附加到某些文件数据或使用 seek() 覆盖某个部分,而是想用其他东西覆盖所有数据(例如从“somedata”到“”)。
这是来自 HTML5Rocks 的 FileWriter 设置的 sn-p,其中添加了 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);
调用 writer.truncate() 时,调用 writer.write() 会引发文件异常错误。我相信这是因为 readyState 设置为 WRITING。不幸的是,我不知道如何解决这个问题。
我已经尝试过查看HTML5Rocks section,但它并没有告诉我任何关于 truncate() 方法的信息(尽管我知道它存在于 Webkit JS 控制台告诉我的内容)。
长话短说,我怎样才能正确使用 truncate() 方法而不会出错?
【问题讨论】:
-
为什么要截断(1)?为什么不 truncate(0) 得到一个零大小的文件?
标签: javascript html truncate filewriter