java 如何在Android中导入外部数据库?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 如何在Android中导入外部数据库?相关的知识,希望对你有一定的参考价值。
package XXX;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.os.Environment;
import android.util.Log;
import xxx.R;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
/**
* Created by liwenwei on 6/8/2018.
*/
public class DBManager {
private final int BUFFER_SIZE = 400000;
private String DB_PATH;
private final String DB_NAME = "countries.db";
private SQLiteDatabase database;
private Context context;
public DBManager(Context context) {
this.context = context;
DB_PATH = "/data"
+ Environment.getDataDirectory().getAbsolutePath() + "/"
+ context.getPackageName();
}
public void open() {
database = open(DB_PATH + "/" + DB_NAME);
}
private SQLiteDatabase open(String dbFile) {
File file = new File(dbFile);
if (!file.exists()) {
try {
InputStream is = context.getResources().openRawResource(R.raw.countries);
FileOutputStream fos = new FileOutputStream(dbFile);
byte[] buffer = new byte[BUFFER_SIZE];
int len;
while ((len = is.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
is.close();
fos.close();
} catch (FileNotFoundException e) {
Log.e("Database", "File not found");
e.printStackTrace();
} catch (IOException e) {
Log.e("Database", "IO exception");
e.printStackTrace();
}
}
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbFile, null);
return db;
}
public void close() {
if (this.database != null) {
this.database.close();
}
}
}
以上是关于java 如何在Android中导入外部数据库?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Java Native Interface 在 C++ 中导入 python 库 - Android Studio
如何在 Vue 组件中导入外部函数?
使用在C ++中导入外部jar文件的java类
如何在 Ionic 3 中导入外部 JS 文件
如何在Android项目中导入OpenCV库?
是否可以从外部 Maven 依赖项在 Spring Java 项目中导入占位符值 (@Value)?