Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中将Sqlite数据转换为CSV文件_Android_Sqlite_Export_Export To Csv - Fatal编程技术网

在android中将Sqlite数据转换为CSV文件

在android中将Sqlite数据转换为CSV文件,android,sqlite,export,export-to-csv,Android,Sqlite,Export,Export To Csv,这是我的代码,当我运行它时,它不会在我的sd卡中存储或生成任何文件。我不知道我在哪里犯了错误对不起,我在编程方面不行 List<ClientModel> list = new ArrayList<ClientModel>(); //My Model DatabaseHelper db = new DatabaseHelper(getApplicationContext()); //My DBHelper Class list = db.g

这是我的代码,当我运行它时,它不会在我的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();
        }
List List=new ArrayList()//我的模型
DatabaseHelper db=新的DatabaseHelper(getApplicationContext())//我的DBHelper类
list=db.getAllClientList()//从数据库获取所有数据的方法
File exportDir=新文件(Environment.getExternalStorageDirectory(),“”)//
如果(!exportDir.exists())
{
exportDir.mkdirs();
}
文件文件=新文件(exportDir,“Abc.csv”)//文件名
//将数据写入txt文件
试一试{
createNewFile();
CSVWriter csvWrite=new CSVWriter(new FileWriter(file));//在csv文件中写入数据
对于(int index=0;index
您需要检查Api 23的运行时
权限

试试这个:

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();
    }
}
public void Save_file(){
File exportDir=新文件(Environment.getExternalStorageDirectory(),“”)//
如果(!exportDir.exists())
{
exportDir.mkdirs();
}
File File=新文件(exportDir,“Abc.csv”);//文件名
//将数据写入txt文件
试一试{
createNewFile();
CSVWriter csvWrite=new CSVWriter(new FileWriter(file));//在csv文件中写入数据
对于(int index=0;index=23){
if(checkSelfPermission(android.Manifest.permission.WRITE\u外部存储)
==PackageManager.权限(已授予){
Log.v(标记“已授予许可”);
返回true;
}否则{
Log.v(标记“权限被撤销”);
ActivityCompat.requestPermissions(这个新字符串[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
返回false;
}
}

else{//在SDK上自动授予权限您在清单中授予写权限了吗?是的,我已经添加了您在
catch
block中收到的错误?打开失败:EACCES(权限被拒绝)在调试中显示我。但是我已经添加了权限尝试你的代码工作Thx人。我没有检查api 23的权限time@Cool如果答案有帮助,请单击勾号将其标记为正确