Скопируйте данные из файла CSV в файл Sqlite в Android

1

Я хочу скопировать данные из файла CSV в файл SQLite для моей структуры таблицы android application.SQLite, т.е. столбцы отличаются от столбцов файла CSV. В файле CSV есть еще столбцы. Я пытаюсь использовать DB Browser для программного обеспечения SQLite.

Можно ли скопировать данные через это приложение или я должен написать какой-то код для этого? Кто-нибудь может предложить, пожалуйста?

Теги:
csv
android-sqlite

2 ответа

0

Если столбцы в вашем CSV файле не отображаются на столбцы в вашей таблице SQLite, то сначала нужно выполнить какое-то преобразование данных, т.е. уменьшить количество столбцов до количества столбцов в вашей таблице и присвоить им соответствующие имена. Затем вы можете использовать встроенный импортер CSV для импорта данных.

  1. Откройте терминал и запустите приглашение sqlite.
  2. Установить режим для CSV

    sqlite>.mode csv

  3. Импортируйте данные из вашего CSV файла с помощью следующей команды:

    sqlite>.import c: /path/to/your/file/use/forward/slashes destination_table_name

Это действительно хороший учебник. http://www.sqlitetutorial.net/sqlite-import-csv/

0

Я хотел бы предложить использовать SQLite Studio для импорта данных CSV и создать файл базы данных SQLite из этого файла CSV. Вы можете найти детали здесь. Вы также можете сделать это из аргумента командной строки, как показано в приведенной ссылке.

$ sqlite3 mydb // This creates a new database
.mode csv // Enable to import from the csv
.import c:/sqlite/city.csv cities // import a csv file and create a table having the column name same as found in the first row of your csv file

Получив базу данных SQLite, вы можете добавлять, удалять или изменять столбцы и их имена с помощью запросов к базе данных.

После того, как вы подготовили базу данных, вы можете поместить этот файл базы данных в каталог ресурсов вашего проекта Android Studio и во время запуска приложения скопировать базу данных из каталога ресурсов в локальное хранилище, чтобы оно могло быть доступно вашему приложению Android. Я прилагаю пример кода для копирования файла базы данных из каталога ресурсов во внутреннее хранилище.

private void copyFromAssetsAndCreateDatabase() {

    InputStream mInputStream;
    private String DB_PATH = "/data/data/" + "your.application.package.goes.here" + "/databases/";

    try {
        mInputStream = getApplicationContext().getAssets().open(YOUR_DATABASE_NAME);

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

        OutputStream mOutput = new FileOutputStream(f);
        byte[] mBuffer = new byte[1024];
        int mLength;
        while ((mLength = mInputStream.read(mBuffer)) > 0) {
            mOutput.write(mBuffer, 0, mLength);
        }

        mOutput.flush();
        mOutput.close();
        mInputStream.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Надеюсь, это поможет!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню