1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    août 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : août 2017
    Messages : 2
    Points : 1
    Points
    1

    Par défaut Simplement écrire dans un fichier

    Bonjour,

    Comme écrit dans le titre je souhaiterais simplement écrire dans un fichier. C'est mon premier projet Android.

    Voici un code que j'ai trouvé parmi tant d'autres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    String filename = "myfile";
    String string = "Hello world!";
    FileOutputStream outputStream;
     
    try {
      outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
      outputStream.write(string.getBytes());
      outputStream.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
    Déjà openFileOutput écrit ainsi me retourne cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error: cannot find symbol method openFileOutput(String,int)
    Je dois donc l'écrire ainsi : context.openFileOutput

    Ce qui engendre un autre problème : trouver un context. Car la fonction getBaseContext() n'existe pas soit disant de même que getActivity() dans ce fichier JAVA, à l'inverse du fichier JAVA principal, à ce que j'ai compris c'est un problème d'activités.

    Merci de votre aide

    PS : je ne tiens pas particulièrement à utiliser openFileOutput

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    août 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : août 2017
    Messages : 2
    Points : 1
    Points
    1

    Par défaut

    Finalement j'ai réussi en transmetant mon context et pour info ça donne ça.

    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
      public void WriteSettings(Context context, String data){
            FileOutputStream fOut = null;
            OutputStreamWriter osw = null;
     
            try{
                fOut = context.openFileOutput("settings.dat",Context.MODE_PRIVATE);
                osw = new OutputStreamWriter(fOut);
                osw.write(data);
                osw.flush();
                //popup surgissant pour le résultat
               // Toast.makeText(context, "Settings saved",Toast.LENGTH_SHORT).show();
            }
            catch (Exception e) {
                Toast.makeText(context, "Settings not saved",Toast.LENGTH_SHORT).show();
            }
            finally {
                try {
                    osw.close();
                    fOut.close();
                } catch (IOException e) {
                    Toast.makeText(context, "Settings not saved", Toast.LENGTH_SHORT).show();
                }
            }
    Mais ça ne me convient pas car j'aurais aimé un fichier accessible pas dans le root (/data/data/...)
    Donc il faudrait écrire sur la carte externe ou la mémoire interne mais qui s'appelle sdcard.

    Voilà ce que j'ai trouvé mais qui ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public void WriteSettings(String data) throws FileNotFoundException {
            File sdCard = Environment.getExternalStorageDirectory();
            File dir = new File (sdCard.getAbsolutePath() + "/dir1/dir2");
            dir.mkdirs();
            File file = new File(dir, "filename");
     
            FileOutputStream f = new FileOutputStream(file);
                }
            }
        }
    J'ai bien mis les permissions (je pense) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    Merci

Discussions similaires

  1. Créer et écrire dans un fichier.txt
    Par Furius dans le forum VBScript
    Réponses: 11
    Dernier message: 16/05/2016, 12h27
  2. Ouvrir et écrire dans un fichier .txt en T-SQL
    Par joul's dans le forum MS SQL-Server
    Réponses: 11
    Dernier message: 27/10/2008, 21h04
  3. [FTP] Lire et écrire dans un fichier
    Par dj-julio dans le forum Fichiers
    Réponses: 49
    Dernier message: 12/01/2006, 11h59
  4. [Rech. Comp.] Lire et écrire dans des fichiers XML
    Par Rodrigue dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/08/2005, 20h48
  5. Réponses: 3
    Dernier message: 05/10/2004, 15h16

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