0
我想将应用程序的SQLite数据库导出为CSV文件并存储在SD卡中。导出方法在DBAdapter类中定义为ExportToCSV。我检查应用程序是否成功创建SQLite数据库。但是,当我尝试使用MainActivity中的onPause方法调用ExportToCSV时,应用程序无法响应导出数据库。你能给我一些关于如何改正这段代码的意见吗?我会感谢您的帮助!评论需要将android Sqlite数据库导出为CSV
我的代码如下:
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();
}
}
我用的onPause在MainActivity.java调用ExportToCSV:
@Override
protected void onPause() {
super.onPause();
DBAdapter myDatabase=new DBAdapter(this);
myDatabase.open();
Cursor c=myDatabase.getAllgpspoint();
// this method was defined in DBAdapter.java and returned a Cursor
myDatabase.ExportToCSV(c, "IRI.csv");
myDatabase.close();
mSensorManager.unregisterListener(this);
}
你是什么意思“无法响应出口”?是否有任何函数*未被调用?你有例外吗? –
虽然应用程序不断生成数据,但似乎ExportToCSV无法运行。我在HTC状态下运行该应用程序,它显示“Acitivity MainActivity(在应用程序数据库中)没有响应。” –