处理下载/获取的SQLite数据库文件而不将其保存在本地存储中

时间:2018-04-02 03:38:15

标签: android sqlite

是否可以从URL下载SQLite数据库文件并对其运行查询以读取数据并将其存储在另一个已存在的SQLite数据库中?或者我需要在本地保存并在此后进行操作?

1 个答案:

答案 0 :(得分:1)

我不知道在下载后立即查询sqlite表。但是,我有类似的经验,从Internet下载sqlite表并将其保存在databases目录中。然后我可以在保存后立即在该表中运行查询。

我正在共享用于在databases目录中保存表的代码。

public static final String DB_PATH = "/data/data/" + "com.example.yourapppackagename" + "/databases/";

try {
    inputStreamDownloaded = downloadFileAndReturnInputStream();

    File dir = new File(DataHelper.DB_PATH);
    if (!dir.exists()) dir.mkdir();
    File f = new File(DB_PATH + "downloaded_table.sqlite");
    if (!f.exists()) {
        f.createNewFile();
    }

    OutputStream mOutput = new FileOutputStream(f);
    byte[] mBuffer = new byte[1024];
    int mLength;
    while ((mLength = inputStreamDownloaded.read(mBuffer)) > 0) {
        mOutput.write(mBuffer, 0, mLength);
    }
    mOutput.flush();
    mOutput.close();
    inputStreamDownloaded.close();
} catch (Exception e) {
    e.printStackTrace();
}

在本地保存.sqlite文件后,您可以在downloaded_table上运行查询。希望有所帮助!