要将SQLite数据库导出为CSV文件,您可以使用以下代码示例:
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Environment;
import android.util.Log;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class SQLiteToCSVExporter {
private static final String TAG = "SQLiteToCSVExporter";
public static void export(Context context, String dbName, String tableName, String csvFileName) {
File folder = new File(Environment.getExternalStorageDirectory() + "/CSVFolder/");
boolean success = true;
if (!folder.exists()) {
success = folder.mkdirs();
}
if (success) {
String filePath = folder.getPath() + "/" + csvFileName;
SQLiteDatabase db = context.openOrCreateDatabase(dbName, Context.MODE_PRIVATE, null);
Cursor cursor = db.rawQuery("SELECT * FROM " + tableName, null);
try {
FileWriter writer = new FileWriter(filePath);
if (cursor.moveToFirst()) {
int columns = cursor.getColumnCount();
for (int i = 0; i < columns; i++) {
writer.write(cursor.getColumnName(i) + ",");
}
writer.write("\n");
while (cursor.moveToNext()) {
for (int i = 0; i < columns; i++) {
writer.write(cursor.getString(i) + ",");
}
writer.write("\n");
}
Log.d(TAG, "CSV file is created successfully.");
}
writer.close();
} catch (IOException e) {
Log.e(TAG, e.getMessage(), e);
}
cursor.close();
db.close();
} else {
Log.e(TAG, "Failed to create CSV folder.");
}
}
}
使用上述代码,您可以通过调用export
方法来导出SQLite数据库表的内容到CSV文件。您需要提供上下文(Context
),数据库名称,表名称和要创建的CSV文件名。
请确保在AndroidManifest.xml文件中添加适当的权限:
这将允许您在外部存储设备上创建文件夹和文件。
请注意,此代码示例将CSV文件保存在名为"CSVFolder"的文件夹中。如果文件夹不存在,则会创建一个。在export
方法的开头部分,您可以根据需要更改文件夹的路径。
希望这可以帮助您成功导出SQLite到CSV。
上一篇:Android java.lang.IllegalArgumentException: Unknown URI: content://downloads/public_downloads 错误