Я пытаюсь импортировать мой CSV-файл в SQLite и получить доступ к импортированному файлу в базе данных и доступ из студии Android. Подскажите, пожалуйста, что не так с моим кодом? Я получаю это сообщение об ошибке!
AssetManager android.content.Context.getAssets () 'для ссылки на пустой объект
public static final String TABLE_NAME = "the_table";
public static final String COLUMN_ID = "_id";
public static final String COLUMN_QUESTION = "question";
public static final String COLUMN_ANSWER = "answer";
public static final String COLUMN_ANSWER_NR = "answer_nr";
public static final String COLUMN_LEVEL_COMPLETE = "level_complete";
public static final String COLUMN_CURRENT_LEVEL = "current_level";
public static final String COLUMN_CRAZY_LEVEL = "crazy_level";
private SQLiteDatabase db;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
importCSVData();
}
public void importCSVData(){
String myCSVFile = "the_table.csv";
AssetManager manager = context.getAssets();
InputStream inStream = null;
try {
inStream = manager.open(myCSVFile);
}catch (IOException e){
e.printStackTrace();
}
BufferedReader buffer = new BufferedReader(new InputStreamReader(inStream));
String line = "";
db.beginTransaction();
try{
while ((line = buffer.readLine()) != null){
String[] columns = line.split(",");
if(columns.length != 6) {
Log.d("CSVParser", "Skipping Bad CSV Row");
continue;
}
ContentValues cv = new ContentValues(6);
cv.put(COLUMN_ID, columns[0].trim());
cv.put(COLUMN_QUESTION, columns[1].trim());
cv.put(COLUMN_ANSWER, columns[2].trim());
cv.put(COLUMN_ANSWER_NR, columns[3].trim());
cv.put(COLUMN_LEVEL_COMPLETE, columns[4].trim());
cv.put(COLUMN_CURRENT_LEVEL, columns[5].trim());
cv.put(COLUMN_CRAZY_LEVEL, columns[6].trim());
db.insert(TABLE_NAME, null, cv);
}
}catch (IOException e){
e.printStackTrace();
}
db.setTransactionSuccessful();
db.endTransaction();
}