创建、读取、编辑和删除示例
在展示示例之前,我想说的是,我在示例中使用了externalDataDirectory
(file:///data/user/0/com.adobe.phonegap.app/files/),因为这个目录是公共的,所以你可以查看文件在您的手机上存在和更改。生成的文件应该在您的内部存储中。
这些示例旨在相互跟进。
生成文件>读取生成的文件>编辑生成的文件>删除生成的文件。
如何编写文件的示例:
//
//resolve url for directory entry for putting in new file
//cordova.file.externalDataDirectory / file:///data/user/0/com.adobe.phonegap.app/files/
//
window.resolveLocalFileSystemURL(cordova.file.externalDataDirectory, function success(dataDirEntry) {
//create new file
dataDirEntry.getFile("test.txt", { create: true, exclusive: false }, function (newFileEntry) {
// Create a FileWriter object for our newFileEntry
newFileEntry.createWriter(function (fileWriter) {
fileWriter.onwriteend = function () {
console.log("Successful file write...");
};
fileWriter.onerror = function (e) {
console.log("Failed file write: " + JSON.stringify(e));
};
//type can be 'text/plain' or newFileEntry.type for .txt
var blob = new Blob(['test it works'], { type: newFileEntry.type });
//console.log(blob);
fileWriter.write(blob);
});
}, function(e) { console.log('creating file error'); console.log(e); });
}, function error(e) { console.log('resolving directory error'); console.log(e); });
如何读取文件的示例:
window.resolveLocalFileSystemURL(cordova.file.externalDataDirectory+'test.txt', function success(fileEntry) {
//read file
fileEntry.file(function (file) {
var reader = new FileReader();
reader.onloadend = function() {
var fileData = this.result;
console.log(fileData);
};
reader.readAsText(file);
}, function(e) { console.log('opening file error'); console.log(e); });
}, function error(e) { console.log('resolving directory error'); console.log(e); });
如何编辑文件的示例:
示例中使用了javascript 函数replace
。我还没有找到另一种编辑文件的方法。
//resolve url for file entry for reading the file
//
window.resolveLocalFileSystemURL(cordova.file.externalDataDirectory+'test.txt', function success(fileEntry) {
//read file
fileEntry.file(function (file) {
var reader = new FileReader();
reader.onloadend = function() {
var fileData = this.result;
console.log(fileData);
//replace test with yes
fileData = fileData.replace('test', 'yes');
// write the edited filedata to the file
// Create a FileWriter object for our fileEntry
fileEntry.createWriter(function (fileWriter) {
fileWriter.onwriteend = function () {
console.log("Successful file write...");
};
fileWriter.onerror = function (e) {
console.log("Failed file write: " + JSON.stringify(e));
};
//type can be 'text/plain' or newFileEntry.type for .txt
var blob = new Blob([fileData], { type: fileEntry.type });
//console.log(blob);
fileWriter.write(blob);
});
};
reader.readAsText(file);
}, function(e) { console.log('opening file error'); console.log(e); });
}, function error(e) { console.log('resolving directory error'); console.log(e); });
如何删除文件的示例:
window.resolveLocalFileSystemURL(cordova.file.externalDataDirectory+'test.txt', function success(fileEntry) {
fileEntry.remove(function() {
console.log('file deleted');
}, function(e) {
console.log('file not deleted');
console.log(e);
});
});