不可能在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权限的应用程序/应用程序一样在网站上的其他用户。
此应用程序旨在运行在非根设备。
任何帮助表示赞赏!
答
“java.io.FileNotFoundException:
C:\用户\里卡多\桌面\ testesCSV \ pessoas.csv(只读文件系统)”
那是你的Windows电脑上的路径。在C:分区上。但是,您的应用在Android设备上运行,并且无法访问计算机上的文件。
而是使用
File file = new File(getExternalFilesDir(null), "pessoas.csv");
Android不具有 '桌面'。每个应用都在自己的沙箱中运行。 – Barns