无法在 Android 中创建 CSV 文件,总是失败
Impossibility to create CSV file in Android, always fails
我知道有一些关于 Whosebug 的主题,但我找不到任何可以解决我的问题的主题。
我已成功实施(已测试)SharedPreferences 以保存我的应用程序数据,我的 objective 现在是将该数据导出到 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();
}
}
错误我一直在 运行ning 中 "java.io.FileNotFoundException: C:\users\ricardo\desktop\testesCSV\pessoas.csv (Read-only file system)"
为了用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 权限的情况下 app/app。
此应用适用于 运行 非 root 设备。
感谢任何帮助!
"java.io.FileNotFoundException:
C:\users\ricardo\desktop\testesCSV\pessoas.csv(只读文件系统)
这是您 windows 计算机上的路径。在 C: 分区上。但是您的应用程序在 Android 设备上运行,无法访问您计算机上的文件。
改为使用
File file = new File(getExternalFilesDir(null), "pessoas.csv");
我知道有一些关于 Whosebug 的主题,但我找不到任何可以解决我的问题的主题。
我已成功实施(已测试)SharedPreferences 以保存我的应用程序数据,我的 objective 现在是将该数据导出到 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();
}
}
错误我一直在 运行ning 中 "java.io.FileNotFoundException: C:\users\ricardo\desktop\testesCSV\pessoas.csv (Read-only file system)"
为了用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 权限的情况下 app/app。
此应用适用于 运行 非 root 设备。
感谢任何帮助!
"java.io.FileNotFoundException:
C:\users\ricardo\desktop\testesCSV\pessoas.csv(只读文件系统)
这是您 windows 计算机上的路径。在 C: 分区上。但是您的应用程序在 Android 设备上运行,无法访问您计算机上的文件。
改为使用
File file = new File(getExternalFilesDir(null), "pessoas.csv");