Slippery Rock University Dr. Deborah Whitfield Go Browns!

Phone Gap Chapter 5: Device Storage and Files
Cross-Platform Mobile App Development
CpSc 215

Device Storage


Local Storage API


Phonegaps two FileSystem API


Accessing the filesystem
Parsing Directories
Reading and Writing Files
Reading and Writing Lab
  1. Create a new PhoneGap project
  2. Get rid of the extra "stuff" but make sure the cordova.js is still included
  3. Create 2 buttons
    <button type="button" onclick="writeIT()">write hello</button>
    <button type="button" onclick="readIT()">Read file</button>
     
  4. Add the following inside script tags:
     document.addEventListener('deviceready', onDeviceReady, false);
    function onDeviceReady(){
      var size =0;
      window.requestFileSystem(LocalFileSystem.PERSISTENT, size, onFSsuccess, onFSerror);
    }
    function onFSsuccess(FS){
       myRoot=FS.root;
       myRoot.getFile('sample.txt', {create: true, exclusive:false}, function(fileEntry) {setUP(fileEntry, null, true);}, onCreateErr);
       alert ("Success for FS"); 
    }
    function getItReady(file)
    {
       writeFile(file, null);
    }
    function readIT() {
    //notice the ugly code for the file method. It can be beautified
       myFile.file(function (file) {
          var reader = new FileReader();
          reader.onloadend = function() {
              document.getElementById("filedata").innerHTML = this.result;
          };
          reader.readAsText(file);
        }, onReadErr);
    }
    function setUP(fileEntry, x, isAppend){
    	//setUP the file pointer for later use
        myFile=fileEntry;
    	  
    }
    function onFSerror(err){
    	alert ("FS Error " + err);
    }
    /*function parseData (entries) { //for finding a file in the dir
    		
    		  exists =-1;
    		  for (var i=0, len=entries.length; i< len; i++) {
    			if (entries[i].isFile && "sample.txt".test(entries[i].name)) {
    				exists=i;
    				break;
    			}
    		  }
    		  if (exists == -1) {
    		   alert ("The file isn't created yet");
    		   return;
    		  }
    		  else 
    		   myFile=entries[exists];
    		 
    		 alert ("Myfile is setup for use");
    }*/
    function onReadErr (err){
       alert ("Read Error " + err);
    }
    function onWriteErr (err){
       alert ("Write Error " + err);
    }
    function onCreateErr (err){
       alert ("Create Error " + err);
    }
    function writeIT() {
      //getfile already called and set up myFile
      myFile.createWriter(onGetWriter, onWriteErr);
    }
    function onGetWriter(myWriter) {
       //myWriter=writer;
       str="ta-da,3\n;ta-da,4";
       myWriter.seek(myWriter.length);
       myWriter.write(str);
    }
    

Reading and Writing an image