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 :

Creation d'un fichier texte sur le telephone


Sujet :

Android

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 43
    Points : 34
    Points
    34
    Par défaut Creation d'un fichier texte sur le telephone
    Bonjour,

    Dans le cadre d'une application android, je dois recuperer et parser un fichier Json. Le probleme c'est que je bloque a l'etape de la creation du fichier.

    Je vais vous montrer mon code et vous expliquer le probleme.

    Ma fonction de creation de fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    private void createFileAndDirectory() throws FileNotFoundException {
        final String StorageDirectory = Environment
            .getDownloadCacheDirectory().toString();
        final String meteoDirectory_path = StorageDirectory + "/MyApp";
        jsonOutputFile = new File(meteoDirectory_path, "/");
        if (jsonOutputFile.exists() == false)
            jsonOutputFile.mkdirs();
        jsonFile = new File(jsonOutputFile, "value.json");
        }
    plus tard dans mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Log.i("TAG", jsonFile.getAbsolutePath());
    FileOutputStream fileOutput = new FileOutputStream(jsonFile); // le programme plante ici...
    Log.i("TAG","On a fini l'instanciation du jsonFile");
    Le premier Logcat s'affiche donc bien: /cache/myApp/value.json
    En revanche, j'ai ensuite une erreur au niveau du FileOutputStream: java.io.FileNotFoundException: /cache/myApp/value.json

    Du coup, je ne sais pas ou se situe l'erreur. Mon JsonFile a l'air correctement instancie vu que je peux afficher le bon chemin. Mais le programme ne le trouve pas, j'imagine donc qu'il n'a pas ete correctement cree.

    Est ce que quelqu'un aurait une idee? Je suis la dessus depuis un petit moment et je ne sais pas trop quoi faire.

  2. #2
    Membre émérite
    Avatar de nbenbourahla
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 41
    Points : 2 348
    Points
    2 348
    Par défaut
    Bonjour,

    Est ce que tu as rajouté la permission ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    Cordialement
    --
    Développeur Android
    nazim.benbourahla.com

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 43
    Points : 34
    Points
    34
    Par défaut
    Salut, merci pour ta reponse

    En effet si je rajoute ta permission, sa passe tres bien avec un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Environment.getExternalStorageDirectory()
    Mais si je comprends bien, mon programme va alors creer mon dossier sur la carte sd du telephone. Sachant que mon fichier xml ne sera utilise que lors du temps de vie de mon appli, est ce que je ne devrait pas plutot faire un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Environment.getDownloadCacheDirectory()
    dans le but de stocker mon fichier dans le cache de maniere temporaire? En revanche, dans ce cas la, la permission d'on tu m'as parle ne fonctionne plus. Je n'arrive pas a trouver une permission correspondant a cela...

  4. #4
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Salut, je début en développement Android (2 jours d'expérience ) mais je pense que la meilleure façon de faire ce que tu veux est d'utiliser les méthodes openFileOutput et openFileInput de la classe Context (étendue par les classes activités). (voir aussi la méthode deleteFile)

    Le fichier ainsi créé sera propre à ton application et accessible à personne d'autre. Le fichier sera également supprimé lors de la désinstallation de ton application. (ce qui n'est pas le cas en utilisant la SD card)

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 43
    Points : 34
    Points
    34
    Par défaut
    Salut,

    Merci de ta reponse, je vais tester sa, je vous tiens au courant. Je trouve quand meme cela etrange de ne pas pouvoir utiliser la classe File pour faire cela.

  6. #6
    Inscrit

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Points : 892
    Points
    892
    Par défaut
    Comme tu veux pas stocker permanent tes donnés, tu peux belle et bien utiliser Context#getCacheDir () qui te retournera un object File dont tu pourra utiliser pour stocker tes données de facon temporelle.

    Attention : Le cache ne supporte pas plus de 1 Mo et pourra etre supprimé par le systeme quand l'espace de stockage devient insuffisant.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 43
    Points : 34
    Points
    34
    Par défaut
    Merci pour ta reponse,

    Je vais donc utiliser le cache, je ne pense pas que mon fichier depassera le Mo. En revanche, le Context me donne donc un fichier utilisable par mon application et elle seule si j'ai bien compris. Est ce que si depuis mon Application je lance une nouvelle activite, je pourrais acceder a ce fichier depuis cette activite?

  8. #8
    Inscrit

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Points : 892
    Points
    892
    Par défaut
    Le cache n'est pas une variable lié à une activity mais plutot de l'application.
    Partout tu pourra y acceder...dans ton application depuis n'importe quel activity.
    Mais il est visible uniquement par ton application...et un utilisateur experimenté peut y acceder manuellement.

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 43
    Points : 34
    Points
    34
    Par défaut
    Merci pour ta réponse, je crois que j'ai tout ce qu'il faut pour m'en sortir.

    Merci de votre aide.

    problem---->solved

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/09/2006, 21h34
  2. Réponses: 32
    Dernier message: 17/05/2006, 16h03
  3. Réponses: 6
    Dernier message: 23/02/2006, 12h09
  4. Réponses: 29
    Dernier message: 28/07/2005, 13h41
  5. Envoyer un fichier texte sur un port IP ?
    Par jnc dans le forum Web & réseau
    Réponses: 4
    Dernier message: 19/07/2005, 11h01

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