С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
_bio
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 30
1

Загрузка базы данных с SD карты

25.05.2016, 09:31. Просмотров 384. Ответов 6
Метки нет (Все метки)

Ребят, подскажите как реализовать загрузку готовой базы данных с расширение .bd в приложение с SD карты?
Я так понимаю загрузка происходит в assets, и потом уже происходит считывание ее?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2016, 09:31
Ответы с готовыми решениями:

Загрузка базы данных из файла, в классе SQLite БД
Здравствуйте. Есть метод loadBDOfWordsToList(), который из текстового файла...

Удалить файл базы с SD карты при удалении приложения
Возможно ли такое ? Файл базы создаю: public DBHelper(Context context) { ...

Постолбцовое отображение данных из базы данных SQLite
Уважаемые форумчане, помогите пожалуйста. Необходимо вывести данные из таблицы...

Android - Вывод данных из базы данных
Всем здравствуйте! Задача не сложная, надо просто знать:-[ Нужно вывести данные...

Вывод данных из базы данных SQLite
Здравствуйте уважаемые форумчане! Делаю программу для работы с базой данных...

6
Frozik6k
12 / 12 / 7
Регистрация: 04.04.2016
Сообщений: 51
25.05.2016, 09:46 2
Java
1
mDBHelper = new DBHelper(mContext, DB_FULL_NAME, null, DB_VERSION);
В DB_FULL_NAME можешь указать полный путь к базе данных на SD карте, и она откроется.
0
_bio
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 30
25.05.2016, 11:53  [ТС] 3
Задумка следующая, на Sd карте будет несколько BD, захожу в приложение жму кнопку, и выбираю на карте .bd файл, после чего его подгрузил, если надо выбрать другой файл следовательно, можно выбрать также его на Sd карте.
Реализовать через OpenFileDialog? Или есть еще какие варианты?
0
Frozik6k
12 / 12 / 7
Регистрация: 04.04.2016
Сообщений: 51
25.05.2016, 15:48 4
Примерно вот так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
    private void showBackupDialog(){
        String title = getResources().getString(R.string.title);
        ArrayList<String> list = new ArrayList<>();
        list = getListDBfiles();
        if (list != null) {
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                    android.R.layout.select_dialog_singlechoice, list);
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle(title)
                    .setSingleChoiceItems(adapter, -1, dialogClickListener)
                    .setPositiveButton(R.string.ok, dialogClickListener);
            AlertDialog alert = builder.create();
            alert.show();
        } else Toast.makeText(this, R.string.no_filesDB, Toast.LENGTH_LONG).show();
    }
 
    DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            ListView lv = ((AlertDialog) dialogInterface).getListView();
            if (i == Dialog.BUTTON_POSITIVE){
                Log.d(LOG_TAG, lv.getChildAt(lv.getCheckedItemPosition()).toString());
                TextView tv = (TextView) lv.getChildAt(lv.getCheckedItemPosition());
                Log.d(LOG_TAG, "Выбранная база данных " + tv.getText().toString());
                loadDBfiles(tv.getText().toString());
                Log.d(LOG_TAG, "Загрузка базы данных прошла успешно");
            }
        }
    };
0
_bio
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 30
11.07.2016, 11:25  [ТС] 5
Ребят помогите с реализацией задумки((( что то не могу разобраться(

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase;
import android.content.Context;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.FileOutputStream;
import java.io.File;
import java.sql.SQLException;
 
public class DatabaseHelper extends SQLiteOpenHelper {
 
    private static String DB_PATH = null;
    private static String DB_NAME = "Rostov1.db";
    private static final int SCHEMA = 1; // версия базы данных
    static final String TABLE = "LIST";
 
    public static final String COLUMN_ID = "_id";
    public static final String COLUMN_NAME = "site_name";
    public static final String COLUMN_YEAR = "number_nri";
    public SQLiteDatabase database;
    private Context myContext;
 
    public DatabaseHelper(Context context) {
        super(context, DB_NAME, null, SCHEMA);
        this.myContext=context;
        this.DB_PATH = "/data/data/" + context.getPackageName() + "/" + "databases/";
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion,  int newVersion) {
 
    }
 
    public void create_db(){
        InputStream myInput = null;
        OutputStream myOutput = null;
        try {
            File file = new File(DB_PATH + DB_NAME);
            if (!file.exists()) {
                this.getReadableDatabase();
                //получаем локальную бд как поток
                myInput = myContext.getAssets().open(DB_NAME);
                // Путь к новой бд
                String outFileName = DB_PATH + DB_NAME;
 
                // Открываем пустую бд
                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(IOException ex){
 
        }
    }
 
    public void open() throws SQLException {
        String path = DB_PATH + DB_NAME;
        database = SQLiteDatabase.openDatabase(path, null,
                SQLiteDatabase.OPEN_READWRITE);
 
    }
 
    @Override
    public synchronized void close() {
        if (database != null) {
            database.close();
        }
        super.close();
    }
}
Этот код который сейчас, копирование базы данных из ресурса assets.
КАК ЕГО ПЕРЕДЕЛАТЬ ЧТОБЫ БАЗА ДАННЫХ ЧИТАЛАСЬ ИЗ SD карты

Добавлено через 2 минуты
Т.е сейчас база данных Rostov1.db лежит допустим на SD карте в папке Download, как ее прочитать от туда? Просто указать путь?
0
_bio
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 30
13.07.2016, 11:21  [ТС] 6
Готов рассмотреть некоторое вознаграждения, люди ну пожалуйста=)
0
OlegJV
103 / 103 / 28
Регистрация: 13.03.2016
Сообщений: 474
13.07.2016, 12:58 7
Java
1
2
3
4
5
6
7
8
9
10
        File source = new File(EXT_DIR.getAbsolutePath() + "/" + path);
        InputStream is = null;
        if (source.exists()) {
            try {
                is = new FileInputStream(source);
            }
            catch (FileNotFoundException e) {
                return null;
            }
        }
Где EXT_DIR = Environment.getExternalStorageDirectory();

Добавлено через 1 минуту
Готов рассмотреть некоторое вознаграждения
Так бы сразу и сказал ))
1
13.07.2016, 12:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2016, 12:58

Загрузка данных на фрагмент
Такой вопрос. В приложение поступают данные типа картинка и текст. Хочу сделать...

Загрузка данных при скроллинге
Как реализовать загрузку данных при прокрутке ScrollView, в момент когда список...

Загрузка данных с удалённого сервера
Здравствуйте! Подскажите пожалуйста, как лучше, правильно или предпочтительнее,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru