IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Lecture d'un fichier


Sujet :

Android

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut Lecture d'un fichier
    Bonjour à tous,

    J'ai un petit problème...
    Je vous explique :
    Je télécharge un fichier sur le net, tout se passe pour le mieux.
    Ensuite je veux lire ce fichier et l'interpréter.
    Lorsque je lis un fichier directement dans mon dossier Raw (le même fichier) aucun problème. Mais lorsque je le télécharge, ensuite impossible de le lire car j'ai un force close.

    Voici le LogCat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    05-12 09:33:22.606: ERROR/AndroidRuntime(236): Uncaught handler: thread Thread-10 exiting due to uncaught exception
    05-12 09:33:22.647: ERROR/AndroidRuntime(236): java.lang.IllegalArgumentException: File /data/data/com.LocProMobile.android/toto.txt contains a path separator
    05-12 09:33:22.647: ERROR/AndroidRuntime(236):     at android.app.ApplicationContext.makeFilename(ApplicationContext.java:1495)
    05-12 09:33:22.647: ERROR/AndroidRuntime(236):     at android.app.ApplicationContext.openFileInput(ApplicationContext.java:387)
    05-12 09:33:22.647: ERROR/AndroidRuntime(236):     at android.content.ContextWrapper.openFileInput(ContextWrapper.java:152)
    05-12 09:33:22.647: ERROR/AndroidRuntime(236):     at com.LocProMobile.android.MainActivity.run(MainActivity.java:484)
    05-12 09:33:22.647: ERROR/AndroidRuntime(236):     at java.lang.Thread.run(Thread.java:1060)

    Mon code qui génère l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    try {
    				InputStream is2 = openFileInput("/data/data/com.LocProMobile.android/toto.txt");
    				Log.e("openFileInput","OK is2");
        		} catch (FileNotFoundException e1) {
    				// TODO Auto-generated catch block
    				Log.e("openFileInput","ERREUR is2");
    				e1.printStackTrace();
    			}
    Alors que lorsque je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream is = this.getResources().openRawResource(R.raw.toto);
    Je n'ai pas le moindre problème.

    Lorsque je télécharge mon fichier, les droit qui lui sont attribué de base sont 300 je ne sais pas si le problème peux venir de là.

    Voilà si quelqu'un peut me donner un coup de main je suis preneur !

    Merci à tous

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 179
    Par défaut
    ou est stocke ton fichier ?( j ' aurai tendance a dire sur un dossier de ton OS au vu du path)
    Android ne peut y acceder , si tu veux lire un fichier autrement que par ressource , crée une carte SD virtuel et met y ton fichier

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut
    Merci pour ta réponse.

    Cependant j'ai toujours l'erreur en mettant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream is2 = openFileInput("/sdcard/toto.txt");
    Et bien entendu le fichier existe et il est bien stocké sur la sdcard...

    Que veut dire cette ligne dans le LogCat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    05-12 09:33:22.647: ERROR/AndroidRuntime(236): java.lang.IllegalArgumentException: File /data/data/com.LocProMobile.android/toto.txt contains a path separator

    Sinon une autre solution serait d'enregistrer le fichier dans le RAW ou de le copier depuis la sdcard. Est-ce possible ?
    J'ai trouvé pour le faire dans le sens inverse mais pas dans ce sens là.

    Encore merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 179
    Par défaut
    tout a fait
    tu utilises une carte sd virtuel ou un vrai phone ?
    car dans ce cas , il faut monter soi meme la carte sd

    pour copier dans la carte SD , eclipse a un gestionnaire de fichier directement integres( dans les outils android)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut
    Je fais ça avec l'émulateur et je le lance avec eclipse. J'ai pourtant bien créé une carte sd à la création et j'y ai accès depuis DDMS...

    Il faut que je test ça sur mon tel pour voir ce que sa donne.

    Bon week end à tout ceux qui font le pont ^^

Discussions similaires

  1. Lecture d'un fichier .dbf
    Par San Soussy dans le forum Autres SGBD
    Réponses: 8
    Dernier message: 07/07/2004, 16h30
  2. Réponses: 6
    Dernier message: 02/09/2003, 15h12
  3. Lecture et ecriture fichier .ini
    Par despe dans le forum C
    Réponses: 6
    Dernier message: 23/07/2003, 20h40
  4. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 4
    Dernier message: 05/02/2003, 08h54
  5. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 10h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo