在应用程序中创建 CSV 或 TXT 文件并将其保存到 'download' 文件夹 - Android
Create CSV or TXT file in app and save it to 'download' folder - Android
在问这个问题之前,我搜索并尝试了很多。
但是我正在尝试的所有代码都不起作用。
我希望文件存储在 download
文件夹中,并且即使用户卸载了应用程序也可以访问该文件。
我也尝试使用 opencsv
库。您能否提供一种 tested
方法来创建 csv
或 txt
文件并存储到 download
文件夹?
保存到您首先需要的 publicDir(下载文件夹)permission.WRITE_EXTERNAL_STORAGE
检查 docs
请注意,如果没有权限,这将无法工作
private void saveData(){
String csv_data = "";/// your csv data as string;
File root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
//if you want to create a sub-dir
root = new File(root, "SubDir");
root.mkdir();
// select the name for your file
root = new File(root , "my_csv.csv");
try {
FileOutputStream fout = new FileOutputStream(root);
fout.write(csv_data.getBytes());
fout.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
boolean bool = false;
try {
// try to create the file
bool = root.createNewFile();
} catch (IOException ex) {
ex.printStackTrace();
}
if (bool){
// call the method again
saveData()
}else {
throw new IllegalStateException("Failed to create image file");
}
} catch (IOException e) {
e.printStackTrace();
}
}
在问这个问题之前,我搜索并尝试了很多。
但是我正在尝试的所有代码都不起作用。
我希望文件存储在 download
文件夹中,并且即使用户卸载了应用程序也可以访问该文件。
我也尝试使用 opencsv
库。您能否提供一种 tested
方法来创建 csv
或 txt
文件并存储到 download
文件夹?
保存到您首先需要的 publicDir(下载文件夹)permission.WRITE_EXTERNAL_STORAGE 检查 docs
请注意,如果没有权限,这将无法工作
private void saveData(){
String csv_data = "";/// your csv data as string;
File root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
//if you want to create a sub-dir
root = new File(root, "SubDir");
root.mkdir();
// select the name for your file
root = new File(root , "my_csv.csv");
try {
FileOutputStream fout = new FileOutputStream(root);
fout.write(csv_data.getBytes());
fout.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
boolean bool = false;
try {
// try to create the file
bool = root.createNewFile();
} catch (IOException ex) {
ex.printStackTrace();
}
if (bool){
// call the method again
saveData()
}else {
throw new IllegalStateException("Failed to create image file");
}
} catch (IOException e) {
e.printStackTrace();
}
}