2017-10-07 6 views
0

Je sais qu'il ya quelques sujets sur ce sujet autour de stackoverflow mais je ne trouve pas de solution à mon problème.Impossibilité de créer un fichier CSV dans Android, échoue toujours

J'ai réussi à mettre en œuvre (j'ai testé) SharedPreferences pour sauvegarder mes données d'application et mon objectif est maintenant d'exporter ces données vers un fichier CSV.

C'est ce que je voulais faire:

public void saveCSVFile(List<PessoaClass> data) { 
    PrintWriter writer; 
    String strFilePath = "C:\\users\\ricardo\\desktop\\testesCSV\\pessoas.csv"; 
    try { 
     File file = new File(strFilePath); 
     if(!file.exists()) 
      file = new File(strFilePath); 

     writer = new PrintWriter(new FileWriter(file,true)); 

     for(int i = 0; i < data.size(); i++){ 
      writer.print(data.get(i).getAge()); 
      writer.print(data.get(i).getSex());    
      writer.print(data.get(i).getName()); 
      writer.print(data.get(i).getEmail()); 
      writer.print("\r\n"); 
     } 
     writer.close(); 
    } 
    catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

L'erreur que je continue à courir dans son « java.io.FileNotFoundException: C: \ users \ ricardo \ Desktop \ testesCSV \ pessoas.csv (Lire système de fichiers -seulement) »

afin de tester avec bibliothèque CSVWriter, j'ai essayé aussi le code exemple suivant:

public void saveCSVFile() { 
    String csv = "C:\\users\\ricardo\\desktop\\testesCSV\\pessoas.csv"; 
    try { 
     CSVWriter writer = new CSVWriter(new FileWriter(csv)); 
     List<String[]> imprimir = new ArrayList<>(); 

     imprimir.add(new String[]{"India", "New Delhi"}); 
     imprimir.add(new String[]{"United States", "Washington D.C"}); 
     imprimir.add(new String[]{"Germany", "Berlin"}); 

     writer.writeAll(imprimir); 
     writer.close(); 
    } 

    catch(IOException e){ 
     e.printStackTrace(); 
    } 
} 

l'erreur était la même. J'ai essayé d'exécuter Android Studio en tant qu'administrateur - sans succès.

Je ne comprends pas ce que l'erreur est parce que j'essaye d'écrire sur mon ordinateur de bureau personnel, pas à app/app sans autorisations de racine comme d'autres utilisateurs dans le site Web.

Cette application est conçue pour fonctionner dans un appareil non-rooté.

Toute aide est appréciée!

+1

Android ne dispose pas d'un 'bureau'. Chaque application s'exécute dans son propre sandbox. – Barns

Répondre

1

"java.io.FileNotFoundException:

C: \ users \ ricardo \ Desktop \ testesCSV \ pessoas.csv (système de fichiers en lecture seule)"

C'est un chemin sur votre ordinateur Windows. Sur la partition C: Mais votre application fonctionne sur un appareil Android et n'a pas accès aux fichiers sur votre ordinateur.

Utilisez plutôt

File file = new File(getExternalFilesDir(null), "pessoas.csv");