Я новичок в разработке приложений с использованием Android Studio. В настоящее время я хочу сохранить все свои данные из CSV-файла в SQLiteDatabase через android. Итак, что я ожидал, так это скопировать все данные из файла .csv в базу данных по умолчанию (если данные еще не существуют в БД). По умолчанию я хочу скопировать данные без предварительного импорта файла. Итак, когда приложение установлено, оно автоматически скопирует данные из CSV-файла в базу данных SQLite в android.
Я попробовал некоторый код здесь:
SQLiteOpenHelper helper;
SQLiteDatabase db;
helper = new DatabaseHelper(this);
db = helper.getWritableDatabase();
String mCSVfile = "food.csv";
AssetManager manager = getAssets();
InputStream inStream = null;
try {
inStream = manager.open(mCSVfile);
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "Error 1", Toast.LENGTH_SHORT).show();
}
BufferedReader buffer = new BufferedReader(new InputStreamReader(inStream));
String line = "";
String tableName = DatabaseHelper.FOOD;
String columns = "food_name, food_category, food_serving, food_serving_size, food_calorie, food_carbs, food_protein, food_fat";
String str1 = "INSERT INTO " + tableName + " (" + columns + ") values(";
String str2 = ")";
String str3 = ";";
db.beginTransaction();
while (true) {
try {
if (!((line = buffer.readLine()) != null)) break;
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "Error 2", Toast.LENGTH_SHORT).show();
break;
}
StringBuilder sb = new StringBuilder(str1);
String[] str = line.split(",");
sb.append("'" + str[0] + "',");
sb.append("'" + str[1] + "',");
sb.append("'" + str[2] + "',");
sb.append(str[3] + ",");
sb.append(str[4] + ",");
sb.append(str[5] + ",");
sb.append(str[6] + ",");
sb.append(str[7] + "");
sb.append(str2);
db.execSQL(sb.toString());
sb.append(str3);
}
db.setTransactionSuccessful();
db.endTransaction();
Я поместил этот код в onCreate на основной деятельности. И уже поместите CSV-файл в папку Assets. Тем не менее, похоже, что есть ошибка на AssetManager.
Кто-нибудь может мне помочь с этим? Я пытался ссылаться на учебник здесь и там, но кажется, что я пока не могу найти никакого решения Заранее спасибо!