文件读取器结果返回空值



我正在学习如何使用Phonegap读取文件。 我从头开始一切。 这是我所做的:

  1. 下载并安装 npm
  2. 通过 npm 安装 Phonegap (npm install -g phonegap(
  3. 通过 npm 安装 Cordova (npm install -g cordova(,这可能是不必要的,但我还是做到
  4. 了 创建
  5. 我的测试应用程序(电话间隙创建测试文件(
  6. 添加安卓平台
  7. (Phonegap平台添加安卓(

之后,我注意到我的插件文件夹和我的 config.xml 中已经包含 cordova-plugin-文件,所以我没有安装它(如果我错了,请纠正我(

然后,在 index.html 文件的底部,我像这样编辑它:

.
.
.
<script type="text/javascript">
app.initialize();
</script>
<script>
function startFile()
{
window.resolveLocalFileSystemURL('file:///storage/emulated/0/newfile.txt', readFile, fail);
}
function readFile(fileEntry) 
{
fileEntry.file(function(file) 
{
var reader = new FileReader();
reader.onloadend = function(e) 
{
var content = this.result;
alert("file content: " + content);
};
reader.readAsText(file);
});
}
function fail(e)
{
alert(e.code);
}
</script>
<input type="button" value="read file" onclick="startFile()" />
</body>
</html>

非常简单,因为我只想查看它如何读取文件并在警报消息框中查看它。

我已经在我的 android 存储上复制了新文件.txt似乎找到了该文件,但警报显示"文件内容:空">

文件的内容只是"你好世界"。有人可以帮我解决这个问题吗?

我已经找到了解决方案。 我没有在 resolveLocalFileSystemURL 上抓取文件,而是先抓取目录,然后从 directoryEntry 对象中获取文件

function startFile()
{
window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory, readDir, fail);
// cordova.file.externalRootDirectory = 'file:///storage/emulated/0/'
}
function readDir(dir)
{
dir.getFile("newfile.txt", {create: false},readFile,fail);
}
function readFile(fileEntry) 
{
fileEntry.file(function(file) 
{
var reader = new FileReader();
reader.onloadend = function(e) 
{
var content = this.result;
alert("file content: " + content);
};
reader.readAsText(file);
});
}
function fail(e)
{
alert(e.code);
}

最新更新