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

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
popoc
Сообщения: 12
Зарегистрирован: 16 апр 2016, 13:55

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

Сообщение popoc » 16 апр 2016, 18:36

День добрый.

Нужно скачать 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 );");

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

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

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

Сообщение Foenix » 16 апр 2016, 23:14

insert это не rawQuery. Кроме того, нужно использовать в запросе параметры - ? вместо данных.

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

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

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

popoc
Сообщения: 12
Зарегистрирован: 16 апр 2016, 13:55

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

Сообщение popoc » 16 апр 2016, 23:24

Foenix,

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

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

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

Как эти данные правильно занести в базу данных?
Последний раз редактировалось popoc 18 апр 2016, 03:10, всего редактировалось 1 раз.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

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

Сообщение Foenix » 17 апр 2016, 00:24

зачем добавлять в массив-то? Сразу в таблицу добавляй, но не rawQuery а insert используй. Уроки тут на сайте есть.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Ответить