简体   繁体   English

如何将数据库文件从资产文件夹复制到/ data / data / <package-name> /数据库文件夹

[英]How to copy database file from asset folder to /data/data/<package-name>/database folder

I have put a database file in to assets folder and want to copy it to /data/data//database folder . 我已将数据库文件放入资产文件夹,并希望将其复制到/ data / data // database文件夹。 For this purpose , I have written the following code : 为此,我编写了以下代码:

public void copy()
{
    try
    {
        String dest_path = "/data/data/"+getPackageName()+"/database/sultandatabase";
        File f = new File(dest_path);
        if( !f.exists() )
        {
            copy_database(getBaseContext().getAssets().open(db_name),new FileOutputStream(dest_path));
        }
    }
    catch(Exception e)
    {
        Toast.makeText(this,"Sorry the file can not be opended", Toast.LENGTH_LONG).show();

    }
}

public void copy_database(InputStream io ,OutputStream ou) throws Exception
{
    byte[] buffer = new byte[1024] ;
    int lenght;

    while( ( lenght = io.read(buffer)) > 0 )
        ou.write(buffer);
    io.close();
    ou.close();

}

When I call copy() the database file is not copied . 当我调用copy()时,数据库文件未复制。 What is the possible reason ?? 可能是什么原因? How can I fix this ?? 我怎样才能解决这个问题 ?? Instead a toast is shown up . 取而代之的是敬酒。 That means my program gets Exception ?? 这意味着我的程序得到了异常? But why ?? 但为什么 ??

i have this code for copy: 我有此代码要复制:

private void copyDataBase()
{
    try
    {
    InputStream myInput = myContext.getAssets().open(DATABASE_NAME);
    String outFileName = DATABASE_PATH + DATABASE_NAME;
    OutputStream myOutput = new FileOutputStream(outFileName);
    byte[] buffer = new byte[1024];
    int length;
    while ((length = myInput.read(buffer))>0)
    {
        myOutput.write(buffer, 0, length);
    }

    myOutput.flush();
    myOutput.close();
    myInput.close();
    }
    catch(Exception ex)
    {
        ex.printStackTrace();
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何将文件从资产文件夹复制到android中的... / database文件夹 - How to copy file from asset folder to …/database folder in android 将文件夹复制到/ data / data / <package-name> /从系统/应用程序/ <app> 在aosp中的构建期间文件夹 - copying a folder to /data/data/<package-name>/ from system/app/<app> folder during build time in aosp 如何在Android中的/ data / data / package-name / app_database /中创建数据库 - How to create a database in /data/data/package-name/app_database/ in android Android:从资产文件夹复制数据库,但只得到一个空文件 - Android: copy database from asset folder, but only get an empty file 从应用程序的资产文件夹以编程方式复制数据库文件 - copy a database file programatically from asset folder of the application 从Android中的资产文件夹复制数据库中的AsyncTask - AsyncTask in copy Database from asset folder in Android 无法从Android中的Asset文件夹复制数据库 - Cannot copy database from Asset folder in Android 我的数据库通过Phonegap存储在Android中的/data/data/package-name/app_database/file__0/*.db中 - My database getting stored in /data/data/package-name/app_database/file__0/*.db in Android through Phonegap 无法从资产文件夹中填充的 sqlite 数据库中获取数据 - Unable to get data from populated sqlite database in asset folder 将sqlite数据库复制到Data文件夹 - copy sqlite database to Data folder
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM