moijdik Posté(e) 28 août 2013 Share Posté(e) 28 août 2013 hello j'ai essayé plusieurs méthodes trouvées sur le net pour écrire dans un fichier (ici ou là). 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 29 août 2013 Share Posté(e) 29 août 2013 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
moijdik Posté(e) 29 août 2013 Auteur Share Posté(e) 29 août 2013 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 30 août 2013 Share Posté(e) 30 août 2013 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); ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
moijdik Posté(e) 30 août 2013 Auteur Share Posté(e) 30 août 2013 en fait sdcard est le dossier de la mémoire interne. external_sd est celui de la carte sd Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.