如何在android资产文件夹中访问数据库?

时间:2013-07-16 06:04:18

标签: android sqlite android-assets

您好,我正在与表格分开数据库。我需要将该数据库放入/保存到我的资产文件夹中。然后我想要从我的资产文件夹中存储的数据库中获取数据。任何人都可以告诉我该怎么做?提前谢谢。

2 个答案:

答案 0 :(得分:1)

根据我的搜索首先,我们必须复制我们的数据库并将其粘贴到我们的资产文件夹中。 然后点击此链接http://android-vogue.blogspot.in/2011/04/how-to-get-data-in-listview-from-assets.html我们将访问数据库。我是这样做的。一切顺利。

答案 1 :(得分:0)

无法直接从资产文件夹中读取数据库,因此您必须将数据库复制到应用程序存储中。像这样定义路径

    private static String DB_PATH = "/data/data/com.yourpackage.package/databases/";
private static String DB_NAME = "yourdatabase.dat";

有了这个方法,它应该可以复制:

   private void copyDataBase() throws IOException
{

    InputStream mInput = mContext.getResources().getAssets().open(DB_NAME);

    String outFileName = DB_PATH + DB_NAME;

    File createOutFile = new File(outFileName);
    if(!createOutFile.exists()){
        createOutFile.mkdir();
    }
    OutputStream mOutput = new FileOutputStream(outFileName);
    byte[] mBuffer = new byte[1024];
    int mLength;
    while ((mLength = mInput.read(mBuffer))>0)
    {
        mOutput.write(mBuffer, 0, mLength);
    }
    mOutput.flush();
    mOutput.close();
    mInput.close();
}

但是,您必须创建一个数据库类,就像您想要创建新数据库时一样。这超出了这里要讲的框架,但应该给你一个指导从哪里开始。