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 :

Ecriture et lecture d'un fichier .txt public


Sujet :

Android

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 27
    Points : 12
    Points
    12
    Par défaut Ecriture et lecture d'un fichier .txt public
    Bonsoir tout le monde


    Je suis en train de mettre en oeuvre le lien entre deux applis par l'intermédiaire d'un fichier .txt:
    la première application écrit dans un fichier .txt des informations qui sont ensuite lues et utilisées par
    la deuxième appli.
    Malheureusement, après de nombreuses recherches, je ne vois toujours pas comment faire ...
    Quand il s'agissait d'écrire dans un fichier .txt propre à l'application,et placé dans le répertoire Assets, pas de soucis mais là...

    J'ai cru comprendre que si on arrivait à modifier/créer un fichier depuis une application, alors le fichier en question serait accessible seulement
    pour cette même application, vrai ou faux ? J'ai aussi lu que ça pouvait se faire par l'intermédiaire d'un stockage sur carte SD, y aurait pas un moyen plus simple ?

    Toute idée,proposition ou exemple qui marche sont bons à prendre, merci d'avance pour votre aide

  2. #2
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2014
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2014
    Messages : 106
    Points : 322
    Points
    322
    Par défaut
    Tu peux creer un service dans la première activité dont le rôle serait de lire les informations que tu veux partager. A partir de la 2eme applications, tu envoie un intent sur ce service pour qu'il te renvoie les infos. Par contre pour un nombre important d'infos je déconseille cette méthode.
    Pour l'écriture sur carte SD il est possible de le faire sur android 1 et 2, et sur android 5 si l'utilisateur le permet mais pas sur Android 3 et 4, donc à ne pas utiliser.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 27
    Points : 12
    Points
    12
    Par défaut
    Merci pour ta réponse

    J'ai finalement réussi à résoudre la moitié du problème, à savoir trouver comment écrire depuis mon application
    sur un fichier .txt visible par tous, depuis l'explorateur de fichier .
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    public class fichier {
    	public static void ecrireFichier(String nomFichier,ArrayList<String> a,Context c) {
     
            BufferedWriter writer = null;
     
            try {
     
    				//Context c=
            	//File dir=getPackageManager().getLaunchIntentForPackage("com.example.appli1");
            		File dir = c.getExternalFilesDir("ToutMesFichiers");
     
            		dir.mkdirs();
            		File newfile = new File(dir,nomFichier);
            		writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(newfile)));
            		for(int i=0;i<a.size();i++){
            		writer.write(a.get(i)+"\n");
            		}
            } catch (Exception e) {
                Log.e("NoteActivity","Failed to write file",e);
            } finally {
                if (writer != null) {
                    try {
                         writer.close();
                    } catch (IOException e) {
                         Log.e("NoteActivity","erreur",e);
                    }
                }
            }
        }
     
     
     
    }
    Ce code me permet d'obtenir le fichier .txt voulu mais maintenant le problème, c'est de réussir
    à le lire depuis l'autre application..
    Le principe a l'air d'être le même, je sais comment le lire mais je ne sais comment y accéder,comment le récupérer..
    Quel chemin, quelle méthode utiliser pour le faire ?

  4. #4
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2014
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2014
    Messages : 106
    Points : 322
    Points
    322
    Par défaut
    Le cheemin que tu récupère via Context.getExternalFileDir est propre à ton appli, les autres ne pourront pas écrire dedans. Le mieux pour ce que tu veux faire c'est d'utiliser des SharedPreferences : http://developer.android.com/guide/t...rage.html#pref que tu peux partager avec les autres applis.

  5. #5
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Citation Envoyé par derderder Voir le message
    Le cheemin que tu récupère via Context.getExternalFileDir est propre à ton appli, les autres ne pourront pas écrire dedans. Le mieux pour ce que tu veux faire c'est d'utiliser des SharedPreferences : http://developer.android.com/guide/t...rage.html#pref que tu peux partager avec les autres applis.
    Non. Ce sont les ContentProviders qui permettent de partager des données.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 27
    Points : 12
    Points
    12
    Par défaut
    Merci pour votre aide !

    @derderder
    J'ai bien compris que lorsque l'on effectue: Context.getExternalFileDir(), cela nous renvoie
    le contenu propre à l'application en cours de fonctionnement,mais justement, est-ce qu'il est possible
    de spécifier un autre chemin pour ne pas me retrouver dans les ExternalFilesDir de la 2ème appli mais dans celui
    de la 1ère, pour juste le lire? (en théorie, possible, si le fichier .txt est accessible depuis l'explorateur de fichiers ..?)


    @Hephaistos007
    Je vais me renseigner là-dessus !

    Vos 2 réposes veulent-elles bien dire qu'il est impossible, depuis une application androïd de lire un fichier .txt
    placé dans la mémoire de l'appareil ( et pas dans le .assets de l'application), même en lui précisant
    le path pour y accéder? (si c'est possible comment on fait ?)

Discussions similaires

  1. lecture d'un fichier txt ligne par ligne
    Par SoBaKa dans le forum Général Python
    Réponses: 4
    Dernier message: 06/03/2007, 12h02
  2. Lecture depuis un fichiers txt
    Par mask91 dans le forum C++
    Réponses: 15
    Dernier message: 04/03/2007, 22h40
  3. Réponses: 4
    Dernier message: 13/11/2006, 22h30
  4. Ecriture et lecture dans un fichier
    Par laetous dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 23/08/2006, 17h59
  5. [debutant] lecture d'un fichier txt de 10mo
    Par karamazov994 dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 19/04/2005, 15h55

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