Sqlite数据到android中的CSV文件(Sqlite Data To CSV file in android)

编程入门 行业动态 更新时间:2024-10-23 07:29:35
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(); } }

更多推荐

本文发布于:2023-04-29 10:17:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1335937.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文件   数据   android   Sqlite   file

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!