我有一个包含很多表的数据库。我想将所有表导出到不同的.csv文件中。例如,表1将生成1.csv文件。表2. 2.csv文件。等等
此方法工作正常,但我仅将所有表导出到单个.csv文件中。
public void exportData (View view) {
File dbFile = getDatabasePath("myDataBase.db");
Helper dbhelper = new Helper(getApplicationContext());
File exportDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
if (!exportDir.exists())
{
exportDir.mkdirs();
}
File file = new File(exportDir, tableName);
try
{
file.createNewFile();
CSVWriter csvWriter = new CSVWriter(new FileWriter(file));
SQLiteDatabase db = dbhelper.getReadableDatabase();
Cursor curCSV = db.rawQuery("SELECT * FROM " + tableName,null);
csvWriter.writeNext(curCSV.getColumnNames());
while(curCSV.moveToNext())
{
String arrStr[] ={curCSV.getString(0),curCSV.getString(1)};
csvWriter.writeNext(arrStr);
}
csvWriter.close();
curCSV.close();
}
catch(Exception sqlEx)
{
Log.e("MainActivity", sqlEx.getMessage(), sqlEx);
}
Toast.makeText(this, "File created!", Toast.LENGTH_SHORT).show();
}
我想将所有表导出到不同的.csv文件中,每个表一个,表名+ .csv扩展名。
你会教我怎么做吗?
答案 0 :(得分:0)
我鼓励您自己解决这个问题,我会提示您正确的方向。
您需要确定需要导出到哪个表的数据,并基于该循环仅遍历该表中的那些记录。
希望这会有所帮助