简体   繁体   English

如何将文件从资产文件夹复制到android中的... / database文件夹

[英]How to copy file from asset folder to …/database folder in android

'm using following code to copy sqlite file from asset folder to database folder. 使用以下代码将资产文件夹中的sqlite文件复制到数据库文件夹。 i found this example here find CommonsWare's answer in this question 我发现这个例子在这个问题中找到了CommonsWare的答案
But im getting java.io.FileNotFoundException: /file:/android_asset/pg558.sqlite (No such file or directory) 但我得到java.io.FileNotFoundException:/ file:/android_asset/pg558.sqlite(没有这样的文件或目录)

void copy() throws IOException {

    InputStream in =getApplicationContext().getAssets().open("pg558.sqlite");
    OutputStream out = new FileOutputStream("data/data/com.mireader/databases/MIBOOK");

    // Transfer bytes from in to out
    byte[] buf = new byte[1024];
    int len;
    while ((len = in.read(buf)) > 0) {
        out.write(buf, 0, len);
    }
    in.close();
    out.close();
}

Please check you pg558.sqlite file, I've tried you code and it worked for my file. 请检查你pg558.sqlite文件,我已经尝试过你的代码,它适用于我的文件。 I copied a xml file from assets/ to /mnt/sdcard/. 我将一个xml文件从assets /复制到/ mnt / sdcard /。

To copy a file from assets folder to /databases folder: 要将文件从assets文件夹复制到/ databases文件夹:

public static final String DATABASE_NAME = "data.db";


private void copyDatabaseFromAssets() {
    try {

        byte[] buffer = new byte[1024];
        OutputStream myOutput;
        int length;
        InputStream myInput;

        String DB_PATH = this.getDatabasePath(AppSettings.DATABASE_NAME).getAbsolutePath();

        AssetManager assetManager = getAssets();
        myInput = assetManager.open("databases/" + AppSettings.DATABASE_NAME);

        myOutput = new FileOutputStream(DB_PATH);
        while ((length = myInput.read(buffer)) > 0) {
            myOutput.write(buffer, 0, length);
        }
        myOutput.close();
        myOutput.flush();
        myInput.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

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

相关问题 Android:从资产文件夹复制数据库,但只得到一个空文件 - Android: copy database from asset folder, but only get an empty file 无法从Android中的Asset文件夹复制数据库 - Cannot copy database from Asset folder in Android 从Android中的资产文件夹复制数据库中的AsyncTask - AsyncTask in copy Database from asset folder in Android 如何将数据库文件从资产文件夹复制到/ data / data / <package-name> /数据库文件夹 - How to copy database file from asset folder to /data/data/<package-name>/database folder 从应用程序的资产文件夹以编程方式复制数据库文件 - copy a database file programatically from asset folder of the application 在Android中的资产文件夹中复制两个SQLite数据库 - Copy two SQLite Database in asset folder in Android Android Studio(资产文件夹中的数据库) - Android Studio (Database From Asset Folder) 无法从资产文件夹Android复制SQLite数据库 - Sqlite database not copied from asset folder Android 如何从Android中的资产文件夹获取文件名和文件数? - how to get file name and file count from asset folder in Android? 如何从放置在资产文件夹中的Android数据库文件中读取版本号 - How to read version number from a database file in Android which is placed in asset folder
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM