Bonjour
je débute actuellement dans le développement d’applications Android. J’ai besoin pour un projet d’écrire des octets dans un fichier. J’ai donc cherché à écrire un programme qui pour le moment écrit un petit texte dans un fichier situé sur la carte SD.
Mais mon problème est que quand je lance mon programme sur mon Nexus 4, j'obtiens :Mon code est le suivant :java.io.IEOxception : open failed ENOENT No such file or directory
Sinon, je ne suis pas Root sur le téléphonne, je ne pense pas que cela soit important mais je le précise quand même.
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
35
36
37
38
39
40 public class MainActivity extends Activity { private String FILENAME = "sortie.txt"; private String textToWrite = "Test il y a quelque chose dans le fichier"; private File mFile = null; FileOutputStream output; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Creation d'un fichier sur la carte SD mFile = new File(Environment.getExternalStorageDirectory().getPath() + "/Android/data/ " + getPackageName() + "/files/" + FILENAME); Toast.makeText(this, "Creation ok. Chemin :\n"+ Environment.getExternalStorageDirectory().getPath(), Toast.LENGTH_LONG).show(); try { // Si le fichier est lisible et qu'on peut écrire dedans if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()) && !Environment.MEDIA_MOUNTED_READ_ONLY.equals(Environment.getExternalStorageState())) { // On crée un nouveau fichier. Si le fichier existe déjà, il ne sera pas créé mFile.createNewFile(); output = new FileOutputStream(mFile); output.write(textToWrite.getBytes()); if(output != null) output.close(); } } catch (FileNotFoundException e) { Toast.makeText(this, "Fichier non trouvé\n"+e.toString(), Toast.LENGTH_LONG).show(); e.printStackTrace(); } catch (IOException e) { Toast.makeText(this, "Erreur\n"+e.toString(), Toast.LENGTH_LONG).show(); e.printStackTrace(); } } }
Si quelqu'un peut me dire pourquoi cela ne fonctionne pas.
Merci d'avance
Partager