Jump to content

manip de fichiers


moijdik

Recommended Posts

hello

j'ai essayé plusieurs méthodes trouvées sur le net pour écrire dans un fichier (ici ou ). La compil/exec marche mais si je vais chercher mon fichier sur la tablette (ni d'ailleurs dans le workspace d'Eclipse), je ne trouve rien

Pourriez-vous m'indiquer un tuto qui marche à tous les coups ou me dire ce qu'il faut que je fasse?

 

La première version que j'ai essayée est celle-ci, je l'avais testée pour un autre projet et elle a dû marcher (je ne me souviens pas de m'être cassé les dents dessus) et je ne comprends pas quourpoi ça ne marche plus

String adressedufichier = System.getProperty("user.dir") + "/"+ "lesClasses.txt";
            try
            {
                new File(adressedufichier).delete();
                FileWriter fw = new FileWriter(adressedufichier, true);
                BufferedWriter output = new BufferedWriter(fw);
                //output.write(graf.figures.écrire());
                output.flush();
                output.close();
                System.out.println("fichier créé");
            }
            catch(IOException ioe){
                System.out.print("Erreur : ");
                ioe.printStackTrace();
                }

par exemple, où est ce 'user.dir'? d'ailleurs je ne sais même pas où est stockée l'appli que je compile... je n'ai pas encore chopé l'intuitivité made by android

Link to comment
Share on other sites

Tu peux te référer à la doc officielle Android, par exemple ici ; cela te permettra de sauvegarder un contenu dans un fichier qui sera situé dans la mémoire interne du téléphone, dans l'espace réservé à ton application (seule celle-ci y aura accès, par défaut).

De même, si tu souhaites sauvegarder sur la mémoire externe, tu as aussi des explications

Link to comment
Share on other sites

ok,en fait j'avais pas vu mais j'avais une erreur de permission (c'était en orange, pas en rouge, bref). J'arrive à stocker sur carte externe mais si je veux suivre la méthode que tu proposes, c'est à dire

  

     String FILENAME = "hello_file";
        String string = "hello world!";
        try {
        FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
        fos.write(string.getBytes());
        fos.close();
          } catch (FileNotFoundException e) {
            e.printStackTrace();
          } catch (IOException e) {
            e.printStackTrace();
          }

getFilesDir() me retourne /data/data/com.example.classe/files mais si je vais dans /data, il n'y a rien
 


c'est bon, j'ai compris, je n'ai pas de droit pour modifier /data. Par contre en passant par

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

 dans le manifeste, le code

String adressedufichier = "/sdcard/My Documents/lesClasses.txt";
try
{
     FileWriter fw = new FileWriter(adressedufichier, true);
     output.flush();
     output.close();
}
catch(IOException ioe)
{
     System.out.print("Erreur : ");
     ioe.printStackTrace();
}

me crée mon fichier dans mes documents, ça me suffira

Link to comment
Share on other sites

Pour accéder à l'espace externe, utilise au moins les méthodes proposées par Android (parce que rien ne garantit que /sdcard soit le point de montage de la carte externe sur tous les devices, cela fonctionne sur le tien, mais le point de montage peut être différent selon le device/la version d'Android)

Donc, ceci sera beaucoup mieux

File myDocsDir = new File(getExternalFilesDir(), "My Documents");
File monFichier = new File(myDocsDirs, "lesClasses.txt");
 
try
{
    FileWriter fw = new FileWriter(monFichier, true);
    ...
Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...