2012-04-09 3 views
3

J'ai exemple de fichier sdcard.txt et je veux l'afficher en utilisant le vide téléphonique.Je suis très nouveau pour Android and phone gap s'il vous plaît aider. Voici mon fichier exemple.txt:lire un fichier texte à partir de carte SD et afficher à l'aide de l'écart téléphonique

 <h2>This file is in sdcard</h2> 

Voici mon phonegap.java

package com.example.phonegap; 
    import org.apache.cordova.DroidGap; 

    public class Phonegap extends DroidGap{ 
     /** Called when the activity is first created. */ 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     super.loadUrl("file:///android_asset/www/myfile.html"); 
     } 

    } 

et est ici le monfichier.html à www:

 <!DOCTYPE html> 
    <html> 
    <head> 
     <title>FileReader Example</title> 

    <script type="text/javascript" charset="utf-8" src="cordova-1.5.0.js"></script> 
    <script type="text/javascript" charset="utf-8"> 

    // Wait for PhoneGap to load 
    // 
    function onLoad() { 
     document.addEventListener("deviceready", onDeviceReady, false); 
    } 

    // PhoneGap is ready 
    // 
    function onDeviceReady() { 
     window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 
    } 

    function gotFS(fileSystem) { 
     fileSystem.root.getFile("file:///sdcard/example.txt", {create: true}, gotFileEntry, fail); 
    } 

    function gotFileEntry(fileEntry) { 
     fileEntry.file(gotFile, fail); 
    } 

    function gotFile(file){ 
     readDataUrl(file); 
     readAsText(file); 
    } 

    function readDataUrl(file) { 
     var reader = new FileReader(); 
     reader.onloadend = function(evt) { 
      console.log("Read as data URL"); 
      console.log(evt.target.result); 
     }; 
     reader.readAsDataURL(file); 
    } 

    function readAsText(file) { 
     var reader = new FileReader(); 
     reader.onloadend = function(evt) { 
      console.log("Read as text"); 
      console.log(evt.target.result); 
     }; 
     reader.readAsText(file); 
    } 

    function fail(evt) { 
     console.log(evt.target.error.code); 
    } 

    </script> 
    </head> 
    <body> 
    <h1>Example</h1> 
    <p>Read File</p> 
    </body> 
</html> 
+0

avez-vous essayé quelque chose? plus de gens seront prêts à aider s'ils voient que vous avez mis un peu d'effort .. – Varun

+0

j'ai essayé de http://docs.phonegap.com/fr/1.0.0/phonegap_file_file.md.html mais cela n'a pas fonctionné ... – user1321726

+0

J'ai également essayé http: // stackoverflow.com/questions/6967696/écriture-et-lecture-fichier-dans-phonegap – user1321726

Répondre

2

Modifier cette ligne:

fileSystem.root.getFile("file:///sdcard/example.txt", {create: true}, gotFileEntry, fail); 

d'être: 01 En supposant que le fichier que vous voulez lire est "example.txt" et se trouve dans le dossier/sdcard.

+0

il n'y a pas d'erreurs mais je ne peux pas voir la sortie .. où peut voir la sortie s'il vous plaît aider !! J'utilise eclipse ...... – user1321726

+0

Exécutez "adb logcat" pour voir les journaux de l'appareil. –

+0

@SimonMacDonald, aucune idée de comment je pourrais lire un fichier de la mémoire interne par défaut/sdcard? –

2

J'ai également rencontré le même problème. Je ne pense pas que le document de l'API dans Phonegap est juste, alors je faisais référence JavaScript: le guide définitif, je l'ai trouvé deux points clés:

  1. l'emplacement du fichier que je suis prêt à lire. -> J'ai trouvé le chemin parent par défaut:/mnt/sdcard. Donc fichier « /mnt/sdcard/temp/test.txt » a été écrit fileSystem.root.getFile("temp/test.txt", null, gotFileEntry, fail)

  2. après reader.readAsText(file), juste en utilisant element.innerHTML = reader.result ne peut pas afficher le résultat dans le fichier HTML. donc j'ajouter un rappel:

    reader.onload = function(){ 
        element.innerHTML = reader.result 
    } 
    

Après avoir réglé les deux parties, mon code fonctionne! StackOverflow a une politique de format de téléchargement très stricte, donc je ne peux pas télécharger le code exact. Mais vous pouvez me contacter pour demander le code.

1

Je suppose que l'example.txt est à la racine de la carte SD (ne réside pas dans un dossier). puis changer suivant de votre code,

function gotFS(fileSystem) { 
     fileSystem.root.getFile("file:///sdcard/example.txt", {create: true}, gotFileEntry, fail); 
    } 

à

function gotFS(fileSystem) { 
     fileSystem.root.getFile("example.txt", {create: true}, gotFileEntry, fail); 
    } 

Et essayer en utilisant alerte dans la fonction ci-dessous,

function readAsText(file) { 
     alert("readAstext"); 
     var reader = new FileReader(); 
     reader.onloadend = function(evt) { 


       console.log("Read as text"); 
       console.log(evt.target.result); 
       alert("content : "+evt.target.result); 
      }; 
      reader.readAsText(file); 
} 

Si cela est fonctionne pas, s'il vous plaît ajouter ci-dessous code l'étiquette de votre corps en HTML

<body onload='onLoad();'> 

Faites-moi savoir les problèmes que vous pourriez rencontrer. Merci ,,

Questions connexes