使用chrome fileSystem编写时,字符串中的Javascript NULL字符
Javascript NULL character in string when writing with chrome fileSystem
我在chrome打包的应用程序中使用了一个文件编写器来保存json字符串。我遵循了一些示例,其中写入程序被设置为截断blob的长度,这样文件就可以用更短的数据覆盖。
this.writeLocalFile = function(){
chrome.fileSystem.getWritableEntry(self.localFile, function(writableEntry){
console.log(writableEntry);
writableEntry.createWriter(function(writer) {
writer.onerror = function(){
console.log("error");
}
writer.onwriteend = function(){
console.log("Write ended");
}
self.getData();
blob = new Blob([self.data], {type: 'text/plain'});
writer.truncate(blob.size);
//writer.seek(0);
writer.write(blob);
}, function(error){
console.log(error);
});
})
}
问题是,当我用较短的数据覆盖较长的文件时,如果我不使用truncate,多余的数据就会留下,并且我在下一次加载时无法读取有效的json,如果我使用truncated,那么当我在高级中查看时,所有额外的空间都是奇怪的null字符
因此,读取的字符串仍然是旧的较长文件的长度,但当我将其登录到控制台时,该字符串是正确的,我可以复制并粘贴输出,并将其设置为另一个较短长度的变量。但是直接读取的对象仍然是较长的长度,我不知道如何从结束中修剪空字符
例如,如果文件是1200个字符,我删除了一些数据并重新保存,使json字符串是800个字符,那么文件中最后的400个字符现在为null。当我在下一次加载时重读数据时,字符串仍然是1200个字符,最后400个字符是"
weirdstring[900]//""
weirdstring[900] == "" // false
weirdstring[900] == null // false
weirdstring[900].length // 1
!weirdstring[900] // false
weirdstring.charCodeAt(900) // 0
有比扫描字符串、检查charCodeAt==0并删除其余部分更好的方法来解决这个问题吗?比如,写文件的更好方法?
我发现这个问题是因为我也有这个问题。在进行研究时,我认为我们都使用了truncate。
我认为这个stackoverflow解释了如何正确使用truncate:用HTML5FileWriter 覆盖文件
相关文章:
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 来自文本输入null的html javascript变量
- html+javascript:如何在某些条件下禁用dropdownlist中的null选项
- 当null应该在javascript中使用而不是未定义时
- Javascript Float32数组抛出无法读取属性'0'即使数组定义良好,也为null
- 全局Javascript变量变为null
- 如何删除此JavaScript null错误
- chrome和firefox上的javascript null比较不同
- JavaScript null;占位符与“准备清除”
- JavaScript null 参数使正则表达式匹配
- Javascript null 或 empty 控件不起作用
- 将Python None转换为JavaScript null
- JavaScript null引用错误
- 使用chrome fileSystem编写时,字符串中的Javascript NULL字符
- Javascript null输入错误
- 是javascript null独立类型的对象's值
- 与typeof运算符一起使用时,javascript null返回对象
- Javascript null检查没有按预期工作
- IE8 Javascript null != undefined
- Javascript null为空对象属性