Доступ к неправильному сырому ресурсу в Android - PullRequest
2 голосов
/ 07 мая 2011

У меня есть следующий код.Моя идея в OnCreate, я буду заполнять некоторые категории из текстового файла в / res / raw в моей базе данных.

Сначала токенизируйте прочитанный файл по строкам (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();
}

Ответы [ 2 ]

2 голосов
/ 28 сентября 2011

Очистите свое рабочее пространство, перейдя в «Проект-> Очистить ...».Таким образом, весь проект будет построен снова, и сгенерированный класс your.package.R будет обновлен.

1 голос
/ 09 мая 2011

На самом деле я закрыл Eclipse и снова открыл его, и он работает нормально. Sheesh!

...