我如何保存一个很长的字符串
How do i save a very long string?
我正在创建一个移动应用程序,我在黑莓手机上遇到了一个问题(我的大多数用户都使用黑莓)。我正在使用phonegap api。
问题是,我正在下载一个字符串,我保存在本地存储在手机的浏览器,当字符串得到超过x百万字符localstorage不再能够存储字符串。我需要的空间至少是本地存储空间的10倍。
我已经尝试将字符串保存为文本文件,并遵循由phonegap提供的文档,但无法读取或写入文件,所以我放弃了(我认为这是我唯一的方法)。也研究了压缩字符串,但就像我之前说的,我需要超过10倍的空间,我不知道如何将10个字符的字符串转换成1个字符的字符串。
文件读取器和写入器代码(问题是它从未找到或创建文件,getfile()读取或写入失败并返回错误代码1 - file_not_found):
function OnLoadSignInCheck(){
alert("1");
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
alert("2");
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}
function gotFS(fileSystem) {
alert("3");
fileSystem.root.getFile("readme.txt", {create: true, exclusive: false}, gotFileEntry, fail);
}
function gotFileEntry(fileEntry) {
alert("4");
fileEntry.createWriter(gotFileWriter, fail);
}
function gotFileWriter(writer) {
alert("5");
writer.onwriteend = function(evt) {
alert("contents of file now 'some sample text'");
writer.truncate(11);
writer.onwriteend = function(evt) {
alert("contents of file now 'some sample'");
writer.seek(4);
writer.write(" different text");
writer.onwriteend = function(evt){
alert("contents of file now 'some different text'");
}
};
};
writer.write("some sample text");
reader();
}
function fail(error) {
alert(error.code);
}
function reader() {
alert("1");
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFSr, fail);
}
function gotFSr(fileSystem) {
alert("2");
fileSystem.root.getFile("readme.txt", null, gotFileEntryr, fails);
}
function gotFileEntryr(fileEntry) {
alert("3");
fileEntry.file(gotFiler, fails);
}
function gotFiler(file){
alert("4");
readDataUrl(file);
readAsText(file);
}
function readDataUrl(file) {
var reader = new FileReader();
reader.onloadend = function(evt) {
alert("Read as data URL");
alert(evt.target.result);
};
reader.readAsDataURL(file);
}
function readAsText(file) {
var reader = new FileReader();
reader.onloadend = function(evt) {
alert("Read as text");
alert(evt.target.result);
};
reader.readAsText(file);
}
function fails(evt) {
alert(evt.target.error.code);
}
解决了文件路径应该是"file:///store/home/user/documents/readme.txt"的形式。然而,这给我带来了我的下一个问题-我如何让用户选择一个文件路径,因为它将是不同的每个用户或至少对于bb, iphone, android用户?
相关文章:
- NodeJS在一个较大的字符串中获取一个字符串的索引
- Javascript:用while循环在给定的count参数中重复一个字符串
- 如何使用另一个字符串作为模板从字符串中提取数据
- 如何检查一个字符串的所有字符是否都存在于另一个字符串中
- 从表单中动态生成一个字符串,传递给通过AJAX加载的PHP文件
- 我可以使用JS一次使用JSON数组中的一个字符串吗
- 将字符串转换为数组使用javascript更新一个值并返回一个字符串
- 如何在JavaScript中每隔第n个字符分割一个字符串
- 我需要使用什么语法来向一个对象的成员添加一个临时数组,该成员等同于一个字符串的通用列表
- 使用Jquery从所有元素创建一个字符串
- 在Javascript中截断一个字符串,混淆了最后两个测试字符串
- Javascript使用本地存储,回调对象并用Json更改为一个字符串以用于填充函数
- 将一个字符串数组解析为一个新的数组javascript
- 我可以在两个javascript文件之间传递一个字符串吗?
- 如何拆分一个字符串,然后将它们与另一个字符串匹配
- get没有方法“writefile”,即使输入是一个字符串
- 将 url 中的一个字符串替换为另一个字符串
- 如何在 javascript 中使用正则表达式在其他两个字符串之间找到一个字符串
- “JSON.parse(str)”返回“意外令牌c”,但str是一个字符串
- 递归查找嵌套数组中的最后一个字符串