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)?