#android #resources #inputstream
#Android #Ресурсы #входной поток
Вопрос:
У меня есть следующий код. Моя идея заключается в том, что в onCreate я добавлю некоторые категории из текстового файла в / res / raw в свою базу данных.
Сначала a помечает прочитанный файл строками (myCatToken), затем каждую из них я снова разделяю, чтобы получить идентификатор и имя.
По какой-то причине вместо чтения rat.txt Я получаю совершенно другой файл и понятия не имею, почему. Файл, который фактически считывается, существует в папке /res / raw, однако его имя отличается.
Кажется, что это как-то связано с ресурсом, который он отправляет в readTxtFromRaw, однако я не вижу, что с этим не так.
Спасибо
StringTokenizer myCatToken = new StringTokenizer(new String(readTxtFromRaw(R.raw.rat)));
while(myCatToken.hasMoreTokens())
{
StringTokenizer myCatDataToken = new StringTokenizer(myCatToken.nextToken(), ",");
String insertString = new String("insert into " DATABASE_TABLE_CATEGORIES
" (" KEY_CATEGORIES_CATID ", " KEY_CATEGORIES_NAME ") values "
" (" myCatDataToken.nextToken() ", '" myCatDataToken.nextToken() "')");
db.execSQL(insertString);
}
Для справки я включаю этот метод, который я использую. mCtx — это контекст:
private String readTxtFromRaw(Integer rawResource) throws IOException
{
InputStream inputStream = mCtx.getResources().openRawResource(rawResource);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int i = inputStream.read();
while (i != -1)
{
byteArrayOutputStream.write(i);
i = inputStream.read();
}
inputStream.close();
return byteArrayOutputStream.toString();
}
Ответ №1:
Очистите свое рабочее пространство, перейдя в «Project-> Clean …». Таким образом, весь проект будет собран заново, а сгенерированный класс your.package.R будет обновлен.
Ответ №2:
Я закрыл Eclipse и снова открыл его, и это работает.