将android Sqlite DB导出到CSV时需要的注释
我正在尝试将应用程序的SQLite db导出到CSV文件并存储在SD卡中。导出方法在DBAdapter类中定义为ExportToCSV。我已检查应用程序是否成功创建SQLite数据库。但是,当我尝试在MainActivity中使用onPause方法调用ExportToCSV时,应用程序无法响应导出数据库。你能给我一些关于如何纠正这个代码的意见吗?我将感谢你的帮助 我的代码如下:将android Sqlite DB导出到CSV时需要的注释,android,sqlite,csv,export,Android,Sqlite,Csv,Export,我正在尝试将应用程序的SQLite db导出到CSV文件并存储在SD卡中。导出方法在DBAdapter类中定义为ExportToCSV。我已检查应用程序是否成功创建SQLite数据库。但是,当我尝试在MainActivity中使用onPause方法调用ExportToCSV时,应用程序无法响应导出数据库。你能给我一些关于如何纠正这个代码的意见吗?我将感谢你的帮助 我的代码如下: public void ExportToCSV(Cursor c, String fileName) {
public void ExportToCSV(Cursor c, String fileName) {
int rowCount = 0;
int colCount = 0;
FileWriter fw;
BufferedWriter bfw;
File sdCardDir = Environment.getExternalStorageDirectory();
File saveFile = new File(sdCardDir, fileName);
try {
rowCount = c.getCount();
colCount = c.getColumnCount();
fw = new FileWriter(saveFile);
bfw = new BufferedWriter(fw);
if (rowCount > 0) {
c.moveToFirst();
// write the colume title
for (int i = 0; i < colCount; i++) {
if (i != colCount - 1)
bfw.write(c.getColumnName(i) + ',');
else
bfw.write(c.getColumnName(i));
}
// change the line
bfw.newLine();
// write data
for (int i = 0; i < rowCount; i++) {
c.moveToPosition(i);
Log.v("exporting data", "exportting" + (i + 1) + "line");
for (int j = 0; j < colCount; j++) {
if (j != colCount - 1)
bfw.write(c.getString(j) + ',');
else
bfw.write(c.getString(j));
}
// change line
bfw.newLine();
}
}
最后必须关闭文件
bfw.close();
“无法响应出口”是什么意思?有没有函数没有被调用?您是否遇到异常?尽管应用程序不断生成数据,但ExportToCSV似乎无法正常工作。我在HTC状态下运行该应用程序,结果显示“Acitivity MainActivity(在应用程序数据库中)没有响应。”
bfw.close();