Sqlite数据到android中的CSV文件(Sqlite Data To CSV file in android)
这是我运行时的代码,它不会在我的SD卡中存储或生成任何文件。 我不知道我在哪里做错了抱歉错误,因为我在编程时更加笨拙
List<ClientModel> list = new ArrayList<ClientModel>(); //My Model DatabaseHelper db = new DatabaseHelper(getApplicationContext()); //My DBHelper Class list = db.getAllClientList(); //My Method to get all data from database File exportDir = new File(Environment.getExternalStorageDirectory(), ""); // if (!exportDir.exists()) { exportDir.mkdirs(); } File file = new File(exportDir, "Abc.csv"); //File Name //writing data to a txt file try { file.createNewFile(); CSVWriter csvWrite = new CSVWriter(new FileWriter(file)); //Writing data in csv file for (int index = 0; index < list.size();) { String arrStr[] = { String.valueOf(list.get(0))}; csvWrite.writeNext(arrStr); } csvWrite.close(); //But Above Code is not working for me } catch (IOException e) { e.printStackTrace(); }This is my code when i run this it does not store or generate any file in my sd card. I dont know where i'm doing mistake sorry for mistake as im begginer in programming
List<ClientModel> list = new ArrayList<ClientModel>(); //My Model DatabaseHelper db = new DatabaseHelper(getApplicationContext()); //My DBHelper Class list = db.getAllClientList(); //My Method to get all data from database File exportDir = new File(Environment.getExternalStorageDirectory(), ""); // if (!exportDir.exists()) { exportDir.mkdirs(); } File file = new File(exportDir, "Abc.csv"); //File Name //writing data to a txt file try { file.createNewFile(); CSVWriter csvWrite = new CSVWriter(new FileWriter(file)); //Writing data in csv file for (int index = 0; index < list.size();) { String arrStr[] = { String.valueOf(list.get(0))}; csvWrite.writeNext(arrStr); } csvWrite.close(); //But Above Code is not working for me } catch (IOException e) { e.printStackTrace(); }最满意答案
你需要检查Api 23的运行时permission :
尝试这个:
if(isStoragePermissionGranted()){ Save_file(); }现在在您的活动中添加此方法:
public void Save_file(){ File exportDir = new File(Environment.getExternalStorageDirectory(), ""); // if (!exportDir.exists()) { exportDir.mkdirs(); } File file = new File(exportDir, "Abc.csv"); //File Name //writing data to a txt file try { file.createNewFile(); CSVWriter csvWrite = new CSVWriter(new FileWriter(file)); //Writing data in csv file for (int index = 0; index < list.size();) { String arrStr[] = { String.valueOf(list.get(0))}; csvWrite.writeNext(arrStr); } csvWrite.close(); //But Above Code is not working for me } catch (IOException e) { e.printStackTrace(); } } } public boolean isStoragePermissionGranted() { if (Build.VERSION.SDK_INT >= 23) { if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { Log.v(TAG,"Permission is granted"); return true; } else { Log.v(TAG,"Permission is revoked"); ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); return false; } } else { //permission is automatically granted on sdk<23 upon installation Log.v(TAG,"Permission is granted"); return true; } } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if(grantResults[0]== PackageManager.PERMISSION_GRANTED){ Log.v(TAG,"Permission: "+permissions[0]+ "was "+grantResults[0]); //resume tasks needing this permission Save_file(); } }you need to check runtime permission for Api 23:
try this:
if(isStoragePermissionGranted()){ Save_file(); }Now add this methods in your activity:
public void Save_file(){ File exportDir = new File(Environment.getExternalStorageDirectory(), ""); // if (!exportDir.exists()) { exportDir.mkdirs(); } File file = new File(exportDir, "Abc.csv"); //File Name //writing data to a txt file try { file.createNewFile(); CSVWriter csvWrite = new CSVWriter(new FileWriter(file)); //Writing data in csv file for (int index = 0; index < list.size();) { String arrStr[] = { String.valueOf(list.get(0))}; csvWrite.writeNext(arrStr); } csvWrite.close(); //But Above Code is not working for me } catch (IOException e) { e.printStackTrace(); } } } public boolean isStoragePermissionGranted() { if (Build.VERSION.SDK_INT >= 23) { if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { Log.v(TAG,"Permission is granted"); return true; } else { Log.v(TAG,"Permission is revoked"); ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); return false; } } else { //permission is automatically granted on sdk<23 upon installation Log.v(TAG,"Permission is granted"); return true; } } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if(grantResults[0]== PackageManager.PERMISSION_GRANTED){ Log.v(TAG,"Permission: "+permissions[0]+ "was "+grantResults[0]); //resume tasks needing this permission Save_file(); } }更多推荐
发布评论