Страница 1 из 1

Парсинг данных из CSV файла

Добавлено: 16 апр 2016, 18:36
popoc
День добрый.

Нужно скачать csv-файл с веба и занести его в базу данных.

Тут я создаю датабазу:

Код: Выделить всё

class DBHelper extends SQLiteOpenHelper {
        public DBHelper(Context context) {
            super(context, "csvDB", null, 1);
        }

        @Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL("create table csvDB ("
                    + "id integer primary key autoincrement,"
                    + "column1 text,"
                    + "column2 text" + ");");
        }
    }
Потом соответственно в нужном мне месте создаю экземпляр и content values для записи:

Код: Выделить всё

DBHelper dbHelper = new DBHelper(this);
ContentValues cv = new ContentValues();
SQLiteDatabase db = dbHelper.getWritableDatabase();
А дальше мне не понятно как скачать и парсить в бд саму таблицу csv.

Сам файл имеет такой вид:

| text1 | text11 |
| text2 | text22 |
| text3 | text33 |

Т.е. просто 2 столбца, один нужно закинуть в бд в столбец column1, другой - в column2.
И лежит этот файл где-то в вебе "https://csvdoc.csv".

Я так понимаю, будет что-то похожее на это:

rawQuery("Insert into csvDB (_id, column1, column2)
values ( text1, text11 )
values ( text2, text22 )
values ( text3, text33 );");

Как это правильно сделать?

Re: Парсинг данных из CSV файла

Добавлено: 16 апр 2016, 23:14
Foenix
insert это не rawQuery. Кроме того, нужно использовать в запросе параметры - ? вместо данных.

Читать из файла надо по строке. Посмотри java I/O

Скачивать - тоже целая песня. Используй retrofit

Re: Парсинг данных из CSV файла

Добавлено: 16 апр 2016, 23:24
popoc
Foenix,

если опустить момент скачивания и парсинга файла.
Допустим, я успешно пропарсил файл и получил на выходе какой-то массив.

List<String[]> resultList = new ArrayList<String[]>();

Получился двумерный массив с нужными мне данными.

Как эти данные правильно занести в базу данных?

Re: Парсинг данных из CSV файла

Добавлено: 17 апр 2016, 00:24
Foenix
зачем добавлять в массив-то? Сразу в таблицу добавляй, но не rawQuery а insert используй. Уроки тут на сайте есть.