不可能在Android中创建CSV文件,总是失败

问题描述:

我知道这里有几个关于计算器的主题,但是我找不到解决我的问题的任何问题。不可能在Android中创建CSV文件,总是失败

我已成功实现(它已测试)SharedPreferences来保存我的应用程序数据,现在我的目标是将该数据导出到CSV文件。

这就是我要怎样做:

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(); 
    } 
} 

我一直运行到它的“java.io.FileNotFoundException错误:C:\用户\里卡多\桌面\ testesCSV \ pessoas.csv(读-only文件系统)”

为了与CSVWriter库进行测试,我也尝试以下示例代码:

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(); 
    } 
} 

误差是相同的。 我试图以管理员身份运行Android Studio - 没有成功。

我不明白是什么错误,因为我正试图写入我的个人计算机桌面,而不是像没有root权限的应用程序/应用程序一样在网站上的其他用户。

此应用程序旨在运行在非根设备。

任何帮助表示赞赏!

+1

Android不具有 '桌面'。每个应用都在自己的沙箱中运行。 – Barns

“java.io.FileNotFoundException:

C:\用户\里卡多\桌面\ testesCSV \ pessoas.csv(只读文件系统)”

那是你的Windows电脑上的路径。在C:分区上。但是,您的应用在Android设备上运行,并且无法访问计算机上的文件。

而是使用

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